【发布时间】:2015-02-15 02:55:12
【问题描述】:
在我的网站 www.example.com 上,我向子域提交了一个 ajax 请求:
function submit(json_data) {
return $.ajax({
type: 'POST',
url: "https://sub-domain.example.com",
data: json_data
});
}
https://sub-domain.example.com 指向与 example.com 不同的 IP 地址(在 Amazon ec2 上)。这一切过去都很好。但是,当我仅将 example.com 更改为 HTTPS 时,我开始收到如下错误:
XMLHttpRequest 无法加载 https://sub-domain.example.com。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问 Origin 'https://www.example.com'。响应的 HTTP 状态代码为 522。
我使用 Cloudflare。修复此错误的简单方法是什么?
- 我可以更改 Cloudflare 中的设置以确保没有问题吗?我想在 example.com/sub-domain 上设置一个指向与以前相同的 IP 地址的页面,但这似乎是不可能的。
- 我可以对请求进行简单的更改吗?我尝试使用 jsonp,但这不适用于 POST。
- 如果这不可能,我如何更改实际的子域以允许来自 example.com 的此类请求?
【问题讨论】:
-
看来您必须在 Cloudflare 上设置 CORS 标头。 This blog post 可能会有所帮助
标签: jquery ruby-on-rails ajax cross-domain cloudflare