这几乎是一个已知的标准错误,但无法使用现有的Stackoverflow帖子修复相同的问题。无法解决访问控制问题
的XMLHttpRequest不能加载https://myserver.com/context/
响应预检请求未通过访问控制检查:
否“访问控制允许来源”标题存在于所请求的资源 。
原因'https://www.otherwebsite.com'因此不允许访问。
响应了HTTP状态代码405
以下是代码我有 -
function setHeader(xhr) {
xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
}
var url = "https://myserver.com/context/";
$.ajax({
url: url,
type: 'GET', dataType:'json',
success: function(data) {
_this.question(data.question);
_this.questionId(data.questionId);
_this.choices(data.choices);
}, error: function() {
console.log("ERROR in getting microquestion");
},
beforeSend: setHeader
});
阅读错误消息:“_No'Access-Control-Allow-Origin'头部存在__on所请求的资源__._” – Teemu
*“对预检请求的响应...具有HTTP状态码405”*表示要启动,即使您已经配置了将正确的CORS头发送回“正常”请求,也需要将“https:// myserver.com/context /”端点配置为正确处理OPTIONS请求。有关详细信息,请参阅https://stackoverflow.com/questions/43871637/no-access-control-allow-origin-header-is-present-on-the-requested-resource-whe/43881141#43881141但其要点是,最低限度地,服务器必须以2xx成功状态代码回应OPTIONS请求 – sideshowbarker
我刚刚意识到什么错误正试图指出。问题出在服务器端。这就是“请求资源”的含义。感谢@sideshowbarker明确指出。 Upvoting你们俩 – comiventor