尝试通过 POST 请求发送文件时,开发人员可能会遇到错误:“ Access-Control-Allow-Headers 不允许请求标头字段 Content-Type。”此错误表明服务器不允许指定的标头字段。
最初尝试通过添加各种标头来解决此错误,包括“Access-Control-Allow-Origin”和“Access-Control-Allow-方法,”导致了一个新的错误:“Access-Control-Allow-Headers 不允许请求标头字段 Access-Control-Allow-Origin。”
进一步调查,发现 jQuery 文档警告反对将跨域请求的内容类型设置为“application/x-www-form-urlencoded”、“multipart/form-data”或“text/plain”以外的任何内容。 Angular 的默认内容类型是“application/json”,它会触发向服务器发送预检 OPTIONS 请求。
要解决此问题,您可以覆盖 Angular 的默认标头,或者允许在服务器端。以下是覆盖 Angular 默认标头的示例:
$http.post(url, data, { headers : { 'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8' } });
以上是如何修复跨源文件传输中的“不允许请求标头字段”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!