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. Например...
Использование &
вместо &
Ответ 5
Съемка с бедра: на самом деле я получил эту ошибку, потому что я добавил сопоставление подстановок для aspnet_isapi.dll в моем IIS 5.1/WinXP (для некоторых работ, связанных с MVC). Это означает, что файлы .js обрабатываются IIS по-разному. Как только я удалил отображение, описанная вами ошибка исчезла.
Ответ 6
Просто была ошибка. Убедитесь, что файл с включенным javascript не содержит <script> теги. Как только они вытащились из вашего включенного файла, ошибка исчезнет (если предположить, что все это неправильно).