XML не может быть всей программой

Когда я включаю следующий js файл (с jquery в нем), я получаю ошибку в Firebug "XML не может быть всей программой"

JS файл содержит ссылку:

<script src="~/Scripts/scriptname.js" type="text/javascript"></script>

Содержимое файла JS:

$("[id*='txtAddress1S']")
  .blur(function(){
   $("[id*='txtAddress1S']")
      .val().match(
          /\b[p]*(ost)*\.*\s*[o|0]*(ffice)*\.*\s*b[o|0]x\b/i)&&
         (alert("Packages are not deliverable to a Post Office Box.
         \nPlease provide a different shipping address."),
    $("[id*='txtAddress1S']").focus())
  });

Спасибо заранее!

Ответ 1

Может быть, ваш script src атрибут неправильно понимается с помощью ~ и анализируется как пустой тег <script>. Используйте полный путь к файлу javascript или путь относительно страницы, на которую он загружается:

<script src="/full/path/to/Scripts/scriptname.js" type="text/javascript"></script>
<script src="../relative/to/Scripts/scriptname.js" type="text/javascript"></script>

Ответ 2

По какой-то причине ваш файл script обрабатывается Firefox как XML файл. Я предполагаю, что вы включили теги script в свой файл Javascript. Например.

<script>
    $("[id*='txtAddress1S']").blur(function(){$("[id*='txtAddress1S']").val().match(/\b[p]*(ost)*\.*\s*[o|0]*(ffice)*\.*\s*b[o|0]x\b/i)&&(alert("Packages are not deliverable to a Post Office Box.\nPlease provide a different shipping address."),$("[id*='txtAddress1S']").focus())});
</script>

Тебе не нужны теги script во внешнем JS файле.

Эквивалентная ошибка в Chrome

Неподготовленный SyntaxError: Неожиданный токен <

Ответ 3

Я нашел еще одну причину "XML can't be the whole program в FF и Uncaught SyntaxError: Unexpected token < в Chrome. В моем случае все с ошибкой ScriptResource.axd.

Причина в том, что я обслуживаю некоторые страницы из https, и у меня есть менеджер, переключающийся между HTTP и HTTPS-запросами в зависимости от того, что в настоящее время требуется. Из-за неправильной настройки менеджер обслуживал ScriptResource.axd всегда по http, что вызвало ошибки на страницах https.

Ответ 4

Сегодня я испытал такую ​​же ошибку. В моем случае это произошло потому, что я не использовал коды HTML для специальных символов в моем URL-адресе, выполняя запрос AJAX. Например...

Использование &amp; вместо &

Ответ 5

Съемка с бедра: на самом деле я получил эту ошибку, потому что я добавил сопоставление подстановок для aspnet_isapi.dll в моем IIS 5.1/WinXP (для некоторых работ, связанных с MVC). Это означает, что файлы .js обрабатываются IIS по-разному. Как только я удалил отображение, описанная вами ошибка исчезла.

Ответ 6

Просто была ошибка. Убедитесь, что файл с включенным javascript не содержит <script> теги. Как только они вытащились из вашего включенного файла, ошибка исчезнет (если предположить, что все это неправильно).