我使用$ http.get()提交API请求,只要我在测试时在浏览器中启用CORS就可以正常工作。当然,那只是一个绑带。
我找到了这篇文章: Angular $http.get: How to catch all the errors?
让我的代码设置为then()。catch(),当catch代码按预期执行时,仍会抛出错误:
XMLHttpRequest无法加载' url here'由于访问控制检查。
即使我为了开发手动禁用CORS,我仍然会遇到401错误,尽管我遇到了catch()。
目标是防止旧的"红色文字"控制台中的错误,只需通过向用户发出警报来处理它们。
答案 0 :(得分:0)
当您在浏览器中发送http请求时,它会首先发送名为preflight的OPTIONS
请求。如果预检请求的响应不包含Access-Control-Allow-Origin
标题,则浏览器会阻止请求。
此预检请求对Javascript是透明的。因此,对于每个ajax调用,如果目标是跨域的,浏览器会发送两个请求。
即使您发现错误,如果预检请求失败,浏览器也会在控制台中报告网络错误。