Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery ajax选项授权请求不工作_Ajax_Ruby On Rails 3_Jquery_Cors - Fatal编程技术网

JQuery ajax选项授权请求不工作

JQuery ajax选项授权请求不工作,ajax,ruby-on-rails-3,jquery,cors,Ajax,Ruby On Rails 3,Jquery,Cors,我想将数据发布到另一个域并接收操作返回的确认消息。因此,为了让CORS正常工作,我在rails控制器中有一个选项操作来处理OPTION HTTP方法(与POST在同一路径上),它当前看起来如下所示: def options headers['Access-Control-Allow-Origin'] = "*" headers['Access-Control-Allow-Methods'] = 'GET, POST, PUT, OPTIONS' headers['Access-Con

我想将数据发布到另一个域并接收操作返回的确认消息。因此,为了让CORS正常工作,我在rails控制器中有一个选项操作来处理OPTION HTTP方法(与POST在同一路径上),它当前看起来如下所示:

def options
  headers['Access-Control-Allow-Origin'] = "*"
  headers['Access-Control-Allow-Methods'] = 'GET, POST, PUT, OPTIONS'
  headers['Access-Control-Max-Age'] = '100'
  headers['Access-Control-Allow-Headers'] = '*, x-requested-with, content-type, accept, origin, referer, user-agent'
  render :text => '', :content_type => 'text/plain'
end
我的jqueryajax请求如下:(coffeescript)

但是。。。它不起作用

选项请求似乎正在运行,返回
访问控制允许来源:
以及所有,服务器接收并处理发布的数据,但Chrome仍然抛出

XMLHttpRequest cannot load http://my-other-domain.com/. Origin http://my-main-domain.com is not allowed by Access-Control-Allow-Origin.
并触发错误回调


我遗漏了什么?

我记得我遇到过这样的问题,跨ajax问题,在php中,我用header(“…”)解决了这个问题;然后我开始使用
.getJSON

方法中的
访问控制允许源代码:
头必须包含在所有响应中,而不仅仅是飞行前选项响应中。在POST响应中添加该标题应该可以解决问题


(还要注意,“*”在
访问控制允许标头中不是有效值,但它不应破坏任何内容)

您是一个救生员!我读过的文章中似乎没有一篇(清楚地)提到这一点。下面是一个流程图,显示了每个CORS标题应该设置的时间:
XMLHttpRequest cannot load http://my-other-domain.com/. Origin http://my-main-domain.com is not allowed by Access-Control-Allow-Origin.