2

当我从文件系统本地运行它时,我有一个网站运行良好,但是当我尝试使用本地 Web 服务器运行同一个站点时,它会中断。如果我使用帖子,我会收到405 Method Not Allowed错误。如果我使用get呼叫,那么我会收到404 Not Found

我的想法:这与同源政策有关,我已经提出了类似的问题,但无法使用这些答案让我的代码正常工作。

该网站全是 HTML 和 JavaScript,我使用 IIS 7.5 作为我的 Web 服务器。我还使用 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

我对 Web 服务器几乎一无所知,所以如果我的问题的答案可以通过一些参考资源得到最好的解释,我也将不胜感激。

4

1 回答 1

1

请注意遇到此问题的任何人。我花了大约一天的时间才弄清楚。首先,Blender 对 POST 请求是正确的,我将它们更改为 GET 请求。

其次,我发现问题不在我的代码中,而是在 IIS 7.5 中。它没有将 json 作为预定义的 MIME 类型。以下是解决此问题的步骤。

1)确保您正在运行 IIS 7.5。

2) 打开 IIS 服务管理器。

3)打开MIME类型

4)添加新的MIME类型

5) 有两个字段需要填写。

文件扩展名:JSON

MIME 类型:应用程序/json

之后它应该工作。

于 2013-07-11T17:31:11.983 回答