这是我的请求标题
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的服务器发送请求
答案 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>