响应中“ Access-Control-Allow-Credentials”标头的值为“”,必须为“ true”

时间:2018-07-16 17:12:04

标签: php header cors packets

在我的应用程序中,我正在构建一个前端网站(在React上构建),并且我使用PHP作为后端。 我很容易收到错误消息:

  

jquery.js:9600无法加载http://localhost:81/:   响应中的“ Access-Control-Allow-Credentials”标头为“   当请求的凭据模式为“包含”时,必须为“ true”。   因此,不允许访问来源“ http://localhost:3000”。的   XMLHttpRequest发起的请求的凭据模式为   由withCredentials属性控制。

我的PHP标头是:

header('Access-Control-Allow-Origin: http://localhost:3000'); 
// header("Access-Control-Allow-Origin: *"); 
header('Content-Type: application/json');
header('Access-Control-Allow-Headers');
header('Access-Contol-Allow-Credentials: true');

我的前端请求如下:

$.post(
    {
      async: false,

      type: "POST",
      url:'http://localhost:81',
      data: 
      {
        querytype: "dataRequest"
      },
      crossDomain : true,
      xhrFields: {
          withCredentials: true
      },
      complete: this.completed,
      success: this.reqsuccess,
      error: this.reqError
  });

1 个答案:

答案 0 :(得分:1)

您还没有为标题“ Access-Control-Allow-Headers”指定值。该值应为逗号分隔的请求标头列表。标头是可选的,跨站点原始请求(CORS)不需要标头。参见:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers