猿问

CORS和Access-Control-Allow-Header如何工作?

我正在尝试使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 具有在请求中一次发送过cookie的域,并且现在不发送。知道为什么会这样吗?


慕姐4208626
浏览 900回答 2
2回答

吃鸡游戏

如果您使用PHP添加以下行header ( " Access -Control- Allow-Origin : *") ;header ( " Access- Control-Allow -Headers : *") ;可能解决您的问题
随时随地看视频慕课网APP
我要回答