Ошибка в записи AJAX при запуске с локального веб-сервера, но не с локальной файловой системы

У меня есть веб-сайт, который работает нормально, когда я запускаю его локально вне файловой системы, но когда я пытаюсь запустить тот же сайт с помощью локального веб-сервера, он ломается. Если я использую сообщение, я получаю ошибку 405 Method Not Allowed. Если я использую вызов, я получаю 404 Not Found.

Что я думаю: это как-то связано с той же политикой происхождения, я отправил похожие вопросы, но не смог заставить мой код работать, используя эти ответы.

Веб-сайт весь HTML и JavaScript, я использую IIS 7.5 в качестве веб-сервера. Я также использую библиотеку jQuery 1.9 для выполнения вызовов AJAX. Звонок и его содержание размещены ниже (в почтовой версии).

$.get('js/questionJSON.json', function(data){       

    var template = $('#optionTemplate').html();
    var li = $('#templateLI').html();
    var partials = {"templateLI": li}
    var html = Mustache.render(template,data, partials);        
    $('#questionHolder').append(html);
    $('#sortable li .destroyer').click(destroyer);
    $('#sortable li .correctnessGauge').click(correctnessChanger);      
    $('.dropdown-toggle').dropdown();
    $( "ul, li" ).disableSelection();
    $('#adder').click(createNewListItem);
    $('.dropdown-menu a').click(changeMenuText);
    $('#ready2GoBtn').click(createQJSON);
    $( "#sortable" ).sortable({
        revert: true,
        handle: ".handler",
        create: numberItems,
        stop: numberItems
    });         
},'json');  

Также вот заголовки

Заголовки ответа

  Cache-Control private
Content-Length  7265
Content-Type    text/html; charset=utf-8
Date    Wed, 10 Jul 2013 19:39:57 GMT
Server  Microsoft-IIS/7.5

Заголовки запроса

         Accept application/json, text/javascript, */*; q=0.01
Accept-Encoding gzip, deflate
Accept-Language en-us,en;q=0.5
Connection  keep-alive
Host    192.168.200.175:90
Referer http://192.168.200.175:90/multi_choice.html
User-Agent  Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0
X-Requested-With    XMLHttpRequest

Я почти ничего не знаю о веб-серверах, поэтому, если бы ответ на мой вопрос лучше всего объяснил какой-то справочный ресурс, я также был бы признателен за указание на это.

1 ответ

Решение

Примечание для тех, кто сталкивается с этим. У меня ушло около дня, чтобы понять это. Прежде всего, Blender был прав насчет запросов POST, я изменил их на запросы GET.

Во-вторых, как я выяснил, проблема заключалась не в моем коде, а в IIS 7.5. Он не поставляется с json как предопределенный тип MIME. Вот шаги, чтобы решить это.

1) Убедитесь, что вы используете IIS 7.5.

2) Откройте диспетчер служб IIS.

3) Откройте MIME Типы

4) Добавить новый тип MIME

5) Есть два поля для заполнения.

Расширение имени файла: JSON

MIME Тип: приложение / JSON

После этого должно работать.

Другие вопросы по тегам