选项net :: ERR_EMPTY_RESPONSE AngularJs Post调用

时间:2016-01-23 12:43:32

标签: javascript angularjs http-headers xmlhttprequest

这是我的请求标题

Request URL:http://demo7876167.mockable.io/auth/login
Request Headers
Provisional headers are shown
Access-Control-Request-Headers:accept, content-type
Access-Control-Request-Method:POST
Origin:http://localhost:8000
Referer:http://localhost:8000/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36
X-DevTools-Emulate-Network-Conditions-Client-Id:CACC0804-7333-424B-985E-DBA8164A45E1

这是控制台上出现的确切错误

OPTIONS http://demo7876167.mockable.io/auth/login net::ERR_EMPTY_RESPONSE

当我尝试通过邮递员访问相同的URL时,它似乎工作。 每当我尝试访问不同的服务器时就会发生这种情况。

是否有任何特殊的方法在angularJs中进行调用,以便我可以向任何启用了CORS的服务器发送请求

1 个答案:

答案 0 :(得分:3)

在发出您期望它发出的POST请求之前,浏览器正在生成preflight OPTIONS request。 (据推测,这是你用Postman测试的POST请求)。

如果您没有simple request,则需要预检请求。默认情况下,Angular会将POST请求中的数据编码为JSON(而不是更常见的URL表单编码)。 JSON不是简单请求的可接受内容类型之一。

您发出请求的服务器必须响应OPTIONS请求,告诉浏览器您的JavaScript是否允许您发出正在尝试的JSON编码POST请求。

浏览器获得权限后,将发出您使用Postman模拟的POST请求。

或者,make a form encoded POST而不是JSON编码的。{/ p>