And*_*nia 5 javascript java ajax jquery
我有一个使用 jQuery ajax 来获取一些数据的 Web 应用程序。在此站点中,我还有一个记录器,当发生错误时它会向我报告。
我经常在 ajax 调用时遇到此错误:
{"readyState":0,"responseText":"","status":0,"statusText":"error"}
问题是这个错误是随机的,我无法重现它。我对所有 ajax 脚本都得到这个。该请求是在同一来源和我定义的服务器上发出的"Access-Control-Allow-Origin", "*"。
所有浏览器都会出现此错误:
jQuery ajax 代码:
$.ajax({
url: 'MyUrl',
type: 'POST',
dataType: "json",
data: {dataVars},
error: function(response, ajaxOptions, thrownError) {
log.error( 'StringError: ' + ajaxOptions + '\n\nthrownError: ' + JSON.stringify(thrownError) + '\n\nResponse: ' + JSON.stringify(response));
},
success: function(res){
}
});
Run Code Online (Sandbox Code Playgroud)
该请求是向 servlet 执行的。可能是什么问题呢?
来自W3学校:
\n\nreadyState=0\nRun Code Online (Sandbox Code Playgroud)\n\n表示请求未发送。(您的浏览器未连接到目标服务器)。
\n\n这意味着套接字未打开:没有 TCP 握手,因此未到达目标 URL...
\n\n因此,请检查其有效性myUrl(是否是一个好的域?没有跨域),以及客户端的连接性(代理?如果它myUrl是安全的/使用另一个端口,也许它只是没有打开......)
我认为如果是随机的,问题可能出在服务器端。但特别是对于myUrl,如果你无论如何都能获得网页......
但这个错误很奇怪,如果它来自同一台服务器!
\n\n无论如何,我认为这是因为您的客户端和目标服务器之间的连接不稳定,所以也许您可以尝试增加请求的超时时间,或者在错误时重试(例如递归循环):
\n\nvar remainingRetry = 3; //or something else\nfunction handleRequest()\n{\n $.ajax({\n url: \'MyUrl\',\n type: \'POST\',\n dataType: "json",\n data: {dataVars},\n error: function(response, ajaxOptions, thrownError) {\n if (remainingRetry)\n \xc2\xa0{\n remainingRetry--;\n setTimeout(handleRequest, 1000); //timeout between two tries\n }\n\n else log.error( \'StringError: \' + ajaxOptions + \'\\n\\nthrownError: \' + JSON.stringify(thrownError) + \'\\n\\nResponse: \' + JSON.stringify(response));\n\n },\n success: function(res){\n\n\n }\n });\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
11282 次 |
| 最近记录: |