我在使用 Angular $http 和 post 方法时遇到了荒谬的错误。
发送 $http POST 请求时,它没有附加 Content-type header ,因此我收到错误“预检响应具有无效的 HTTP 状态代码 404”。 这是我的代码 -
var obj={
"mobile":"hello",
"password":"asjd"
}
$http({
url: 'http://cbsatwork.com/laundry/api-authentication',
method: 'POST',
data:obj,
headers: {
"Content-Type": "application/json"
}
})
尽管如果我从代码中删除“data:obj”行,它仍然可以工作,并且我会从服务器得到通常的响应。 我研究了很多答案,但找不到任何对我有用的东西。
编辑: 我尝试使用 jQuery 中的 $.ajax() 方法,它工作得很好。没有问题。所以我不认为我的服务器有任何问题。
最佳答案
Response for preflight has invalid HTTP status code 404
此错误表明很可能存在 CORS 问题。浏览器发送两个请求。第一个请求是 OPTIONS
,另一个请求是 POST
,您可以在示例中进行配置。问题不太可能出在 Content-Type
header 上,因为该 header 是使用 POST
发送的,而不是 OPTIONS
。失败的是 OPTIONS
请求。检查您的服务器是否支持 OPTIONS
请求并发回正确的 CORS 所需 header
关于javascript - Angular $http无法发送内容类型 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40480759/