【发布时间】:2011-06-29 00:01:43
【问题描述】:
我在尝试发送 ajax 请求时在 Chrome 中收到此错误:
Content-Type is not allowed by Access-Control-Allow-Headers
在 Firefox 中一切正常。
谁能帮我解决这个问题?
【问题讨论】:
我在尝试发送 ajax 请求时在 Chrome 中收到此错误:
Content-Type is not allowed by Access-Control-Allow-Headers
在 Firefox 中一切正常。
谁能帮我解决这个问题?
【问题讨论】:
我解决了将以下设置添加到 Apache Web Server 虚拟主机配置的问题
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept"
【讨论】:
PHP 解决方案:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST,GET,OPTIONS');
header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept');
(需要在任何其他内容之前发送)
【讨论】:
header('Access-Control-Allow-Origin: http://example.com'); header('Access-Control-Allow-Methods: GET,OPTIONS'); header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept'); echo $_GET['callback'].json_encode($data);
在 node.js 中设置 CORS(跨站点 HTTP 请求)。对我来说,它看起来如下:
app.use('/api', function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type');
next();
});
【讨论】:
我遇到了同样的问题,我通过添加以下标题解决了它: 访问控制允许标题:内容类型
【讨论】:
对于 nginx
location / {
proxy_pass http://localhost:59100;
proxy_http_version 1.1;
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
# Simple requests
if ($request_method ~* "(GET|POST)") {
add_header "Access-Control-Allow-Origin" *;
}
# Preflighted requests
if ($request_method = OPTIONS ) {
add_header "Access-Control-Allow-Origin" *;
add_header "Access-Control-Allow-Methods" "GET, POST, OPTIONS, HEAD";
add_header "Access-Control-Allow-Headers" "Authorization, Origin, X-Requested-With, Content-Type, Accept";
}
# proxy_cache_bypass $http_upgrade;
# add_header Access-Control-Allow-Origin *;
# add_header Access-Control-Allow-Headers Content-Type;
}
见 https://distinctplace.com/2017/04/17/nginx-access-control-allow-origin-cors/
【讨论】:
对 PHP 来说,即使我只设置了这个标头设置,localy 也可以工作:
header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept');
【讨论】: