没有'Access-Control-Allow-Origin' cors问题[重复]
Posted
技术标签:
【中文标题】没有\'Access-Control-Allow-Origin\' cors问题[重复]【英文标题】:No 'Access-Control-Allow-Origin' cors issue [duplicate]没有'Access-Control-Allow-Origin' cors问题[重复] 【发布时间】:2019-02-06 02:58:24 【问题描述】:我有一个调用网络服务 API 的函数。
function GetData()
var prm =
EVENT_CODE: EvnCode
;
$.ajax(
url: 'http://00.00.00.000/CRM/geteventwisebudgetactualamount',
headers:
'AuthKey': 'test',
'Content-Type': 'application/x-www-form-urlencoded',
,
type: 'POST',
contentType: 'application/x-www-form-urlencoded',
data: prm,
crossDomain: true,
dataType: 'json',
success: function (data)
,
error: function (errMsg)
console.log('AJAX FAILED, message : ' + errMsg);
);
它总是显示标题中提到的错误,请帮助解决这个问题。
【问题讨论】:
这个答案很好地解释了 CORS - ***.com/a/10636765/3574481 我有点困惑,我从其他机构得到了这个 api url,现在我不知道他们在他们的代码中做了什么。我只是使用他们的 api url 来使用 ajax 获取记录。请建议,这个问题发生在我这边或 API 方面。 CORS 需要在服务器端进行修复。你不能在客户端上覆盖它——这就是它的全部意义所在。服务器决定接受来自哪个客户端条件的请求。 如果它不是您的 API 并且提供商不支持 CORS(或者不会将您添加到他们的安全来源列表中),那么您就不能使用 AJAX 来发出此请求。您必须改为从服务器端代码发出请求,然后将响应传递回您的页面。 【参考方案1】:您需要设置 CORS 以接受调用 API 的来源。 即,如果调用此函数的应用是 ABC.com,则 API 必须允许来源 ABC.com。
【讨论】:
这意味着我必须在 API 中做一些事情 @user3326557 是的,您需要在服务器的响应中设置正确的标头。 developer.mozilla.org/en-US/docs/Web/HTTP/CORS 很好地介绍了该主题。以上是关于没有'Access-Control-Allow-Origin' cors问题[重复]的主要内容,如果未能解决你的问题,请参考以下文章