当我向api symfony4发送发布请求时出现此错误。我使用fosrestBundle创建api,使用nelmioCrosBundle纠正错误cro,但我也遇到此错误:
CORS策略已阻止从来源“ http://localhost:8000/api/user/upload”访问“ http://localhost:4200”处的XMLHttpRequest:请求的资源上没有“ Access-Control-Allow-Origin”标头。
代码配置nelmio:
nelmio_cors:
# defaults:
# origin_regex: true
# allow_origin: ['%env(CORS_ALLOW_ORIGIN)%']
# allow_methods: ['GET', 'OPTIONS', 'POST', 'PUT', 'PATCH', 'DELETE']
# allow_headers: ['Content-Type', 'Authorization']
# max_age: 3600
# paths:
# '^/': ~
paths:
'^/api':
allow_origin: ['*']
allow_headers: ['Authorization', 'Content-Type']
allow_methods: ['GET', 'POST', 'PUT', 'DELETE']
max_age: 3600
这是将角度数据发送到symfony4的功能:
uploadFiles(test) {
let headers = new Headers({ 'Content-Type': 'application/json',
'Authorization': 'Bearer ' + localStorage.getItem('token') });
console.log(test);
return this._http.post(this.url + '/user/upload',JSON.stringify(test) ,{ headers: headers })
.pipe(map(res => res.json()));
}
我不仅使用代理而且还使用错误,并且我还创建了侦听器来设置标头以作为响应,但是同时也存在错误..如何解决此错误..
答案 0 :(得分:0)
尝试在Access-Control-Allow-Origin
数组中添加allow_headers
答案 1 :(得分:0)
将OPTIONS
添加到allow_methods
答案 2 :(得分:0)
“授权”标头。在您的Symfony应用程序中,您必须设置一个包含以下内容的响应标头:
Access-Control-Allow-Headers : 'Content-Type', 'Authorization'
检查此链接:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers
答案 3 :(得分:0)
如果您只想玩捆绑游戏,不需要CORS
,则可以使用此chrome extension将其禁用。启用的扩展程序将显示绿色图标,因此您可以取消选中Enable cross-origin sharing