Ajax 在nginx discussion.conf中添加访问控制允许来源

Ajax 在nginx discussion.conf中添加访问控制允许来源,ajax,nginx,cors,discourse,Ajax,Nginx,Cors,Discourse,因此,我在forums.awake gaming.com上有一个应用程序,在awake gaming.com上有一个页面,通过ajax将表单发布到forums.awake gaming.com 正如所料,我得到了一份工作 XMLHttpRequest cannot load http://forums.awake-gaming.com/posts. No 'Access-Control-Allow-Origin' header is present on the requested resour

因此,我在
forums.awake gaming.com
上有一个应用程序,在
awake gaming.com
上有一个页面,通过ajax将
表单发布到
forums.awake gaming.com

正如所料,我得到了一份工作

XMLHttpRequest cannot load http://forums.awake-gaming.com/posts. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://awake-gaming.com' is therefore not allowed access.
因此,由于我可以访问服务器,我将其添加到
nginx/conf.d
目录下的
discussion.conf
文件中

add_header Access-Control-Allow-Origin  "http://awake-gaming.com/join-us.html";
add_header Access-Control-Allow-Methods: "GET, PUT, POST, DELETE, OPTIONS";
add_header Access-Control-Allow-Headers: "Content-Type, Authorization, X-Requested-With";
我重新启动了nginx并尝试再次提交表单,理论上,这应该可以工作,但在控制台中仍然会出现相同的错误:

ajax调用也没有返回成功。但奇怪的是,这些数据被发布到论坛.awake gaming.com上,并通过对话api发布


那么我是不是做错了?我试图在meta.discussion.org上提问,但他们说这是nginx的问题,而不是discussion的问题。在
.conf
文件中添加头是否足够?或者我也需要对rails做些什么?

我认为您只需要指定“
http://awake-gaming.com
”,而不是“
http://awake-gaming.com/join-us.html
“对于
访问控制允许原点
值,如错误消息所示。实际上,如果您使用的是Chrome,它会告诉您类似“仅限访问控制允许来源”白名单的信息http://awake-gaming.com/join-us.html
'.Origin'
http://awake-gaming.com
”不在列表中,因此不允许访问。“

另一方面,在
访问控制允许方法
访问控制允许头
之后有额外的冒号,您最好删除它们,但我认为它们不是罪魁祸首