在设置凭据后,将忽略获取请求,set-cookie和cookie:" include"

时间:2017-09-12 08:11:25

标签: cors fetch-api

  1. 我使用fetch发布跨源请求,使用set-cookie标头响应成功:
  2.     Access-Control-Allow-Credentials:true
        Access-Control-Allow-Headers:Content-Type
        Access-Control-Allow-Methods:*
        Access-Control-Allow-Origin:*
        Access-Control-Max-Age:100
        Set-Cookie:CSESSIONID=594747de551d49dcb278bb6a9ad71ccb; Domain=jdcf88.com; Expires=Tue, 12-Sep-2017 08:40:30 GMT; Path=/
    
    1. 然后我通过get请求获取数据,但我发现get请求没有cookie请求标头。代码是:
    2.        fetch('https://xxx.jdcf88.com/login/isLogin?userId=4', {
                  method: "get",
                  credentials: "include",
                  mode: "cors",
                  body: body
              })
      

      我很确定该cookie已设置为域jdcf88.com。 3.我不知道为什么获取请求没有cookie标头,服务器已将Access-Control-Allow-Credentials设置为true,包含凭据。

1 个答案:

答案 0 :(得分:1)

您的服务器使用Access-Control-Allow-Origin:*响应,这与包含凭据不兼容。尝试明确地将您的原点设置为客户的地址。

所以你的服务器应该回复 Access-Control-Allow-Origin:http://localhost:8080(或您的客户端地址)