无法解决访问控制问题

时间:2017-09-11 05:11:33

标签: javascript jquery ajax cors preflight

这几乎是一个已知的标准错误,但无法使用现有的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
});

1 个答案:

答案 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个请求成功状态代码。