Leo*_*rea 62 javascript jquery cors
我正在尝试从domain.com向a.domain.com发出CORS请求POST.
我的javascript看起来像这样
$('#fileupload').fileupload({
xhrFields: {
withCredentials: true
},
dataType: 'json',
url: $('#fileupload').data('path'),
singleFileUploads: true,
add: function(e, data){
data.submit();
}
});
Run Code Online (Sandbox Code Playgroud)
首先,我看到OPTIONS路由被调用如下:
Request URL: https://a.domain.com/some/route
Request Method:OPTIONS
Status Code:200 OK
Run Code Online (Sandbox Code Playgroud)
选项要求:
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
Run Code Online (Sandbox Code Playgroud)
选项响应
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
Run Code Online (Sandbox Code Playgroud)
这个要求回来了200个说明.在我的服务器上,我有相同的路由POST方法,这是我得到的回报之后OPTIONS
Request URL:https://a.domain.com/some/route
Run Code Online (Sandbox Code Playgroud)
发出请求
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryjwr5Pk7WBcfzMdbO
Origin:http://domain.com:3000
Referer:http://domain.com:3000/home
Run Code Online (Sandbox Code Playgroud)
并且POST请求被取消/失败.
我的问题是,我是否还需要在POST控制器上拥有access-control-allow-origin?
我有一个用于授权的cookie,该cookie具有cookie,.domain.com该cookie在请求中被发送过一次并且现在没有被发送.知道为什么会这样吗?
mon*_*sur 83
是的,您需要具有标题Access-Control-Allow-Origin: http://domain.com:3000或Access-Control-Allow-Origin: *OPTIONS响应和POST响应.您还应该Access-Control-Allow-Credentials: true在POST响应中包含标题.
您的OPTIONS响应还应包含Access-Control-Allow-Headers: origin, content-type, accept与所请求标头匹配的标头.
| 归档时间: |
|
| 查看次数: |
135497 次 |
| 最近记录: |