Javascript IE 11上CORS飞行前请求失败的奇怪问题

Javascript IE 11上CORS飞行前请求失败的奇怪问题,javascript,node.js,http,xmlhttprequest,cors,Javascript,Node.js,Http,Xmlhttprequest,Cors,问题是,在IE11上,POST查询失败,在所有其他浏览器中,它似乎都在工作 让我们一步一步地描述问题: 从应用程序到RESTAPI的XHR请求 飞行前选项请求(请求参数如下) 飞行前请求响应参数为: 飞行前请求参数之后的真实HTTP请求: 最后响应参数: 基本上,响应以IE错误结束:Origin:未在Access Control Allow Origin标头中找到。第一个请求是否还需要Access-**-Origin标头,该标头似乎已丢失 我还按照CORS流程图进行了调试,但我没有发现它 我正在

问题是,在IE11上,POST查询失败,在所有其他浏览器中,它似乎都在工作

让我们一步一步地描述问题:

  • 从应用程序到RESTAPI的XHR请求
  • 飞行前选项请求(请求参数如下)
  • 飞行前请求响应参数为:
  • 飞行前请求参数之后的真实HTTP请求:
  • 最后响应参数:
  • 基本上,响应以IE错误结束:Origin:未在Access Control Allow Origin标头中找到。第一个请求是否还需要Access-**-Origin标头,该标头似乎已丢失
  • 我还按照CORS流程图进行了调试,但我没有发现它


    我正在使用Node.js Express server和Node cors模块+修改选项。

    我正在使用Fiddler在我的站点上调试此问题,并收到以下消息:

    HTTP/1.1 400 Bad Request
    Cache-Control: no-cache
    Pragma: no-cache
    Content-Type: application/json; charset=utf-8
    Expires: -1
    Server: Microsoft-IIS/8.5
    X-AspNet-Version: 4.0.30319
    X-Frame-Options: SAMEORIGIN
    X-Content-Type-Options: nosniff
    X-XSS-Protection: 1; mode=block
    Date: Mon, 12 Sep 2016 19:40:20 GMT
    Content-Length: 103
    
    {"Message":"The collection of headers 'accept,if-modified-since,cache-control,pragma' is not allowed."}
    

    所以我只是在我的web.api中添加了CORS缺少的头的列表


    我希望这对某些人有所帮助。

    有响应的实际数据需要ACAO标头刚刚测试过这似乎是问题所在,在Chrome上响应有AC标头,但在IE上,这些标头没有设置在实际数据上。
    X-Powered-By:                   Sugar
    Access-Control-Allow-Origin:    https://app.example.com
    Vary:                           Origin
    Access-Control-Allow-Credentia  true
    ls:                             
    Access-Control-Allow-Methods:   GET,POST,DELETE,OPTIONS
    Access-Control-Allow-Headers:   X-Requested-With,X-HTTP-Method-Override,Content-Type,Accept
    set-cookie:                     sugar.sid=s%Pb9OoTTPUkVw%2F2vUPoFMNG
                                    LMXACSkQevo; Path=/; Expires=Thu, 15 Jan 2015 18:27:07 GMT; HttpOnly; Secure
    Date:                           Mon, 12 Jan 2015 18:27:07 GMT
    Connection:                     close
    
    Accept:           application/json
    Content-Type:     application/json
    Referer:          https://app.example.com/
    Accept-Language:  en-US
    Origin:           https://app.example.com
    Accept-Encoding:  gzip, deflate
    User-Agent:       Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko
    Host:             api.example.com
    Content-Length:   9
    Connection:       Keep-Alive
    Cache-Control:    no-cache
    Cookie:           sugar.sid=s%3A-%2FGF1YoFmRfmBsxK4vLBoGjY5NT0QoYvf5s;
    
    Content-Type:    application/json; charset=utf-8
    Content-Length:  72
    Vary:            Accept-Encoding
    Date:            Mon, 12 Jan 2015 18:27:07 GMT
    Connection:      close
    
    HTTP/1.1 400 Bad Request
    Cache-Control: no-cache
    Pragma: no-cache
    Content-Type: application/json; charset=utf-8
    Expires: -1
    Server: Microsoft-IIS/8.5
    X-AspNet-Version: 4.0.30319
    X-Frame-Options: SAMEORIGIN
    X-Content-Type-Options: nosniff
    X-XSS-Protection: 1; mode=block
    Date: Mon, 12 Sep 2016 19:40:20 GMT
    Content-Length: 103
    
    {"Message":"The collection of headers 'accept,if-modified-since,cache-control,pragma' is not allowed."}