jQuery ajax CORS 请求
Posted
技术标签:
【中文标题】jQuery ajax CORS 请求【英文标题】:jQuery ajaxs CORS request 【发布时间】: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,并得到相同的情况 【参考方案1】:这样就解决了。我错过了诊断信息
Request header field Authorization is not allowed by Access-Control-Allow-Headers.
在这里可以找到非常有用的答案: https://***.com/a/24556330/2835239
【讨论】:
如果其他人有这个问题,我发现很多浏览器在请求有问题时都会报告这个消息,甚至与CORS无关。当我遇到这个页面时,这就是我的情况。以上是关于jQuery ajax CORS 请求的主要内容,如果未能解决你的问题,请参考以下文章
javascript 用于CORS请求的jQuery.ajax()方法的Flickr API请求
使用 jQuery Ajax 和 PHP 的 CORS 请求
Bottle Py:为 jQuery AJAX 请求启用 CORS
jQuery+ASP.NET MVC基于CORS实现带cookie的跨域ajax请求