【发布时间】:2012-09-19 18:16:26
【问题描述】:
我正在尝试将 CORS 请求从 domain.com 发送到 a.domain.com。
我的 javascript 看起来像这样
$('#fileupload').fileupload({
xhrFields: {
withCredentials: true
},
dataType: 'json',
url: $('#fileupload').data('path'),
singleFileUploads: true,
add: function(e, data){
data.submit();
}
});
起初我看到 OPTIONS 路由是这样调用的:
Request URL: https://a.domain.com/some/route
Request Method:OPTIONS
Status Code:200 OK
选项请求:
Access-Control-Request-Headers:origin, content-type, accept
Access-Control-Request-Method:POST
Host:a.domain.com
Origin:http://domain.com:3000
Referer:http://domain.com:3000/home
选项响应
Access-Control-Allow-Credentials:true
Access-Control-Allow-Methods:POST
Access-Control-Allow-Origin:http://domain.com:3000
Connection:keep-alive
Content-Length:0
Content-Type:text/html;charset=utf-8
该请求返回 200 个类似声明。在我的服务器上,我与POST 方法有相同的路由,这就是我在OPTIONS 之后得到的回报
Request URL:https://a.domain.com/some/route
发布请求
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryjwr5Pk7WBcfzMdbO
Origin:http://domain.com:3000
Referer:http://domain.com:3000/home
POST 请求被取消/失败。
我的问题是,我是否也需要在 POST 控制器上设置 access-control-allow-origin ?
我有一个用于授权的 cookie,其域为 .domain.com,该 cookie 在请求中被发送过一次,但现在没有发送。知道为什么会这样吗?
【问题讨论】:
标签: javascript jquery cors