nginx,jquery - 执行 POST 时出现 Access-Control-Allow-Origin 错误

Posted

技术标签:

【中文标题】nginx,jquery - 执行 POST 时出现 Access-Control-Allow-Origin 错误【英文标题】:nginx, jquery - getting Access-Control-Allow-Origin error while doing a POST 【发布时间】:2012-05-08 12:21:32 【问题描述】:

这是我在 chrome 控制台中看到的错误。

XMLHttpRequest 无法加载 URL。 Access-Control-Allow-Origin 不允许来源 URL。

我尝试为我的 nginx 配置 CORS:

location / 
    if ($http_origin) 
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods "GET,POST,OPTIONS";
    

但这似乎没有帮助。

jquery 调用如下所示:

var submissionData = '"tweet_id":"'+tweet_id+'", "question_id":"'+question_id+'", '+choiceString+', "extra_passback":"'+extra_passback+'"';
$.post("http://ec2[...].amazonaws.com/question/answer/", submissionData, function(data) console.log("success"););

我什至不确定问题出在 jquery 还是 nginx。

【问题讨论】:

你一定要看link,啊你的根目录下有crossdomain.xml吗? 【参考方案1】:

基于this post,我添加了另外两个标头(除了您在上面的问题中提到的两个),它适用于我,带有 JQuery json 跨域请求:

add_header         Access-Control-Allow-Headers   Content-Type;
add_header         Access-Control-Max-Age         86400;

【讨论】:

以上是关于nginx,jquery - 执行 POST 时出现 Access-Control-Allow-Origin 错误的主要内容,如果未能解决你的问题,请参考以下文章

POST 后使用 HttpClient 执行 GET 时出现异常

为啥我在执行 POST 请求时收到 405 Method Not Allowed

jQuery $.post 没有执行,如何解决

JQuery $.post() 问题,没有执行任何操作

将 JSON 数据从 JQuery 发送到 WCF REST 方法时出现问题

尝试使用 blueimp jquery 上传小部件上传时出现 405(不允许的方法)错误