0

我刚刚了解到,将 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,我现在完全不知道如何解决这个问题。请帮帮我。谢谢。

4

1 回答 1

0

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

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

为整个服务器设置这个:

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

于 2013-10-11T10:03:33.543 回答