在我的应用程序中,我正在构建一个前端网站(在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
});
答案 0 :(得分:1)
您还没有为标题“ Access-Control-Allow-Headers”指定值。该值应为逗号分隔的请求标头列表。标头是可选的,跨站点原始请求(CORS)不需要标头。参见:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers。