【问题标题】:jQuery ajaxs CORS requestjQuery ajax CORS 请求
【发布时间】:2015-12-15 12:02:43
【问题描述】:

我在 CORS 资源中调用 jQuery ajax 请求。后端在 nginx 上工作,并设置了允许所有域和所有请求类型的 OPTIONS 钩子和响应。但不幸的是,我收到了错误回调。在 Chrome 网络控制台上,我在 OPTIONS 请求上看到了 204 答案。而且我从未见过我原来的 POST 请求。

var email = $('#your_email').val();
var sendData = {
    issue: {
        description: "email:" + email,
        category_id: 1
    }
};

$.ajax({
    url: "https://domen/issues.json",
    type: "POST",
    beforeSend: function (xhr) {
        xhr.setRequestHeader("Authorization", "Basic " + btoa("goodtry:goodtryq"));
        xhr.setRequestHeader("Accept", "application/json");
        xhr.setRequestHeader("Content-type", "application/json")
    },
    data: JSON.stringify(sendData),

    success: function (val) {
        alert("Thanks you, we are going to contact you soon");
    },
    error: function (val) {
        alert("Please check your internet connection");
    }
});

【问题讨论】:

  • 它在响应标头中没有显示任何内容。你在你的后端代码中处理过吗?
  • 只是快速检查将“dataType”设置为json
  • 204状态是我认为的问题,尝试为OPTIONS请求返回200,看看是否发送了POST
  • @Akki619 json 数据类型没有帮助。
  • @charlietfl 204 没问题,因为我已将其更改为 200,并得到相同的情况

标签: javascript jquery ajax nginx cors


【解决方案1】:

这样就解决了。我错过了诊断信息

Request header field Authorization is not allowed by Access-Control-Allow-Headers.

在这里可以找到非常有用的答案: https://stackoverflow.com/a/24556330/2835239

【讨论】:

  • 如果其他人有这个问题,我发现很多浏览器在请求有问题时都​​会报告这个消息,甚至与CORS无关。当我遇到这个页面时,这就是我的情况。
猜你喜欢
  • 2013-12-24
  • 2013-12-06
  • 2015-02-27
  • 2014-09-13
  • 2013-06-20
  • 1970-01-01
  • 2015-09-29
相关资源
最近更新 更多