Angular $ http无法发送内容类型标题
我收到一个荒谬的错误,同时使用角度$ http与post方法。
在发送$ http POST请求时,它没有附加Content-type标头,并且由于此错误,我收到一条错误“预检的响应具有无效的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"
}
})
虽然如果我删除了“数据显示:目标文件”从代码行,它的工作原理和我从服务器获取通常的反应。 我已经看过很多答案,但无法为我工作。
编辑: 我尝试使用jQuery中的$ .ajax()方法,它工作得很好。没有问题。所以我不认为我的服务器有任何问题。
预检
响应具有无效的HTTP状态码404
此错误表示最有可能有一个CORS问题。浏览器发送两个请求。第一个请求是OPTIONS
,另一个是POST
,你在你的例子中配置。问题不太可能与Content-Type
标题相同,因为此标题是使用POST
而不是OPTIONS
发送的。这是OPTIONS
请求失败。检查您的服务器是否支持OPTIONS
请求并发回正确的CORS所需标头
谢谢最大值,但我在我的响应标题中得到这个 - 访问控制允许方法:GET,POST,PUT,OPTIONS,DELETE,HEAD。而且我甚至在浏览器中放了一个cors扩展,但它仍然不起作用。 –
另外,同样的情况发生时,我使用jQuery而不是$ http $ .jax。 function submit(){ \t \t \t var obj = {'mobile':'asd','password':'asdk'}; \t \t \t $阿贾克斯({ \t \t \t \t方法: “POST”, \t \t \t \t网址:“HTTP://www.cbsatwork。COM /洗衣/ API认证”, \t \t \t \t数据:OBJ \t \t \t}); \t \t} 这工作完全正常 速滑运动员的肌肉两项要求(1由$ HTTP和发出的另一个唯一的区别。通过$ .ajax是一个标题Content-Type) –
好的,你能用小提琴来抓住两个请求(OPTONS和POST)及其响应吗? –
您是否向WCF或WebApi后端发出此请求?如果是的话,我可以建议你添加启用CORS的属性,你的问题可能与CORS有关。 https://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api – katmanco
如果您在url之前传递该方法会怎么样? – Korte
您要发送请求的域名是什么? –