JavaScript网络调用(例如fetch或XMLHttpRequest)或任何其他类型的HTTP网络请求在HTTP状态代码为0时失败是什么意思?
这似乎不是有效的HTTP状态代码,因为其他代码在HTTP规范中是三位数.
我尝试完全拔掉网络作为测试.它可能是不相关的,但导致状态代码17003(IIRC),粗略搜索建议意味着"DNS服务器查找失败".
相同的代码可以在某些位置和系统中正常工作,但在某些环境中,它会因状态代码0而失败,并且没有提供responseText.
这是Internet URL的典型HTTP POST.它不涉及file://我理解可能会返回0表示在Firefox中成功.
phonegap应用程序是否需要进行任何CORS更改(例如设置Access-Control-Allow-Origin:*)?我有一个在Heroku上托管的宁静API,并且想知道我是否需要设置此标头以便我的phonegap应用程序调用该服务?
我在想,因为phonegap应用程序实际上并不是在域上托管,所以不需要CORS,我不会遇到任何跨域问题?
如果有人可以向我解释为什么会这样或者不是这样的话会很棒.
这是SO中这个帖子的类似问题.但是这里提供的答案不能应用于我的情况,因为我无法更改服务器的响应头.
假设http POST到不同的来源.这意味着CORS,包括CORS预检交换.现在假设OPTIONS请求503 service unavailable 由于服务器问题而返回错误.在这种情况下,错误处理程序提供""数据和0状态,而不是给我状态代码503和文本:service not available.下图显示了此场景的一个示例.


我正在使用angularjs $ http,我知道在响应中没有CORS头,如果发生这样的错误.我无法改变它.
有什么办法可以在我的拒绝对象中收到正确的错误代码和文本.