这几乎是一个已知的标准错误,但无法使用现有的Stackoverflow帖子进行修复。
XMLHttpRequest无法加载https://myserver.com/context/
对预检请求的响应没有通过访问控制检查:
No' Access-Control-Allow-Origin'标题出现在请求的上 资源。
起源' 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
});
答案 0 :(得分:1)
“对预检请求的响应...有HTTP状态代码405。”消息表示,要开始,https://myserver.com/context/
端点需要配置为正确处理OPTIONS
个请求 - 即使它可能已被设置为为“正常”请求发回正确的CORS标头。
对于某些细节,您可以在 No 'Access-Control-Allow-Origin' header is present on the requested resource—when trying to get data from a REST API 上阅读答案 - 但其中的要点是,服务器必须以{{1}响应OPTIONS
个请求成功状态代码。