【发布时间】:2017-06-10 19:14:02
【问题描述】:
AJAX 调用:
$.ajax({
url: "http://myserver2:296/api/Demo/HelloWorld",
type: "GET",
dataType: 'JSONP',
jsonp: "callback",
headers: { 'API_KEY': 'mykey09090' },
success: function (result) {
console.log(result);
},
error: ajaxFailed
});
function ajaxFailed(xmlRequest) {
alert(xmlRequest.status + ' \n\r ' +
xmlRequest.statusText + '\n\r' +
xmlRequest.responseText);
}
我收到以下错误:Failed to load resource: the server responded with a status of 403 (Forbidden)。但是,当我使用 Postman 时,我只需添加带有 http://myserver2:296/api/Demo/HelloWorld url 的标题,它就会返回字符串。
我能否获得一些帮助来解决这个问题。
我的目标是允许源服务器连同正确提供的 API 密钥从 Web Api 获取数据。
【问题讨论】:
-
API_KEY和它的值在 AJAX 请求中会去哪里?是data还是其他方式? -
我试过了,不幸的是它对我不起作用。我仍然收到
Failed to load resource: the server responded with a status of 403 (Forbidden)错误 -
添加 CORS 是否足够安全,或者我还需要额外的安全性吗?
-
我发现了另一个可能的重复项。 stackoverflow.com/questions/5750696/… 。我会在 ajax 中设置 crossDomain 选项。如果那不是发送 cors 标头。手动添加 cors 标头,就像您是 api 密钥一样
标签: javascript c# ajax asp.net-web-api cors