【发布时间】:2014-11-23 05:19:00
【问题描述】:
我正在尝试使用以下代码从 Web api 获取值,目前是硬编码的。 然而,它会导致 100% 的“错误”部分,我不知道为什么。 欢迎任何帮助。
function SignIn() {
$.ajax({
type: 'GET',
url: 'http://localhost:1200/Api/Values/3',
dataType: "jsonp",
crossDomain: true,
xhrFields: {
'withCredentials': true
},
headers: {
'Access-Control-Allow-Origin': '*'
},
success: function (data) {
debugger;
alert(data);
},
error: function (xhr, ajaxOptions) {
debugger;
alert(xhr.status);
alert(ajaxOptions);
}
});
}
服务器端:
[EnableCors("Access-Control-Allow-Origin", "*", "*")]
public string Get(int id)
{
return "{Name: 'Foo', Id: '1234',Rank: 7}";
}
Web.Config(服务器):
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
【问题讨论】:
-
您是否检查了控制台的“网络”选项卡以查看按头发送和接收的内容?
-
接受:/;接受编码:gzip,放气;接受语言:nl,en-US;q=0.7,en;q=0.3 ;用户代理:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0
-
JSONP 不是 CORS。你不应该使用 JSONP。
-
那你能给我举个例子来说明如何制作和解析 CORS 请求吗?
标签: javascript c# jquery api cors