我刚刚了解到将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,我现在对如何解决这个问题完全无能为力。请帮帮我们。感谢。
答案 0 :(得分:0)
默认情况下,W2K3及更高版本中的IIS不会提供不属于它所知道的MIME类型的文件(而是返回404错误)。
您需要向IIS添加MIME类型以允许它提供该类型的文件。您可以在站点级别或服务器级别进行设置。
为整个服务器设置此项:
在IIS管理器中打开服务器的属性,然后单击“MIME类型” 单击“新建”。为扩展名输入“JSON”,为MIME类型输入“application / json”。