【问题标题】:getJson Access-Control-Allow-OrigingetJson 访问控制允许来源
【发布时间】:2013-07-04 18:59:07
【问题描述】:

我刚刚了解到,将 getJson 与来自另一个域/端口的 url 一起使用通常会导致跨域策略问题。

使用此代码:

    var appGetApi = "http://localhost:30028/api/values";
    $.getJSON(appGetApi, function (_returnedJson) {
       ...
    });

我收到此错误:

XMLHttpRequest cannot load http://localhost:30028/api/values. 
Origin http://localhost:17437 is not allowed by Access-Control-Allow-Origin. 

在网上搜索答案后,添加 &callback=? 似乎是一个著名的修复方法。所以我就这么做了。

    var appGetApi = "http://localhost:30028/api/values&callback=?";
    $.getJSON(appGetApi, function (_returnedJson) {
       ...
    });

但我仍然收到错误:

Failed to load resource: the server responded with a status of 400 (Bad Request) 
http://localhost:30028/api/values&callback=jQuery11020629610788077116_1373178114158?_=1373178114159

这是我第一次使用 API,我现在完全不知道如何解决这个问题。请帮帮我。谢谢。

【问题讨论】:

    标签: json jsonp getjson same-origin-policy


    【解决方案1】:

    默认情况下,W2K3 及更高版本中的 IIS 不会提供不是它所知道的 MIME 类型的文件(而是返回 404 错误)。

    您需要将 MIME 类型添加到 IIS 以允许它为该类型的文件提供服务。您可以在站点级别或服务器级别进行设置。

    为整个服务器设置这个:

    在 IIS 管理器中打开服务器的属性,然后单击 MIME 类型 点击“新建”。为扩展输入“JSON”,为 MIME 类型输入“application/json”。

    【讨论】:

      猜你喜欢
      • 2013-08-20
      • 2013-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-02
      • 2017-12-15
      • 2016-08-18
      • 2022-01-09
      相关资源
      最近更新 更多