нет ошибки в vs2008, но в Chrome Error = XMLHttpRequest не может загрузить файл: запросы на разные источники поддерживаются только для HTTP - PullRequest
0 голосов
/ 16 июня 2011

Я получаю распространенную ошибку Chrome XMLHttpRequest не может загрузить файл: запросы на разные источники поддерживаются только для HTTP.

Однако дело в том, что я пишу свои html / jScript-файлы в vs2008 . В IDE я могу щелкнуть правой кнопкой мыши и выбрать опцию «Просмотр в браузере». Оттуда он открывает код в моем браузере по умолчанию (Chrome), и функция, которую я использую для открытия моих файлов, работает отлично. Это работает в Chrome. Если я перехожу в папку проекта и пытаюсь напрямую открыть html-файл в Chrome, мой jScript, который пытается открыть файл, завершается ошибкой и выдает сообщение об ошибке.

Я понимаю, что это проблема, которая часто возникает, но после поиска в гугле и просмотра стека, я не могу сказать, что видел этот специфический аромат этого раньше. Кроме того, я не включил никакого кода, потому что он выглядит функциональным, а не источником ошибки (как я уже говорил, он прекрасно работает в Chrome при развертывании через vs2008).

Я могу с уверенностью сказать, что я не сделал ничего особенного для проекта Visual Studio. Он запрашивает у вас возможность включить веб-отладку (что я сказал да), но это все. Папка проекта содержит файл index.html, около 5 файлов .js и файл Web.config, созданный в среде IDE. Файл Web.config имеет размер большой , но я могу включить его, если вы считаете, что он поможет.

У кого-нибудь есть идеи о том, что может сделать vs2008, чтобы мой html / jScript-проект работал так, как Chrome сам по себе не делает? Спасибо за вашу помощь.

Ответы [ 2 ]

2 голосов
/ 16 июня 2011

XMLHttpRequest в Chrome не поддерживает доступ к локальным файлам (file://). Один из способов обойти это - запустить HTTP-сервер локально.

Когда вы отлаживаете в VS, он запускает IIS, поэтому в этом случае он работает без ошибок.

0 голосов
/ 16 июня 2011

«Файловый» протокол рассматривает практически любой запрос перекрестного происхождения (вполне возможно, потому что у него нет ни порта, ни хоста домена).

Если вы попытаетесь создать XHR для не http (s), то он, очевидно, потерпит неудачу. Это то, что вы видите здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...