我们正在使用jQuery(1.2.3)ajax帖子,偶尔会收到12031/501错误消息。
出现此错误的原因是什么?
示例代码
jQuery.post('${pageContext.request.contextPath}/sample/someAction.do', jQuery("#form_name").serialize(), function(status){
//Some other code for checking the status......
}
表单有两个textarea(一个已禁用,一个已启用)和一个复选框。还有一个提交按钮。
还有一个ajax错误处理函数,用于处理12031/501类错误消息。有时会显示一个警告框,说明ajax帖子中发生了错误。
$("#form_name").ajaxError(function(event, xhr, settings, exception) {
var errorMessage = "Error in ajax post -";
errorMessage += "\n\t url: " + settings.url;
errorMessage += "\n\t exception: " + exception + ((exception) ? " - " + exception.description : "");
errorMessage += "\n\t readyState: " + xhr.readyState;
errorMessage += "\n\t status: " + xhr.status;
errorMessage += "\n\t statusText: " + xhr.statusText;
errorMessage += "\n\t responseText: " + xhr.responseText;
errorMessage += "\n\t";
alert('Error occured in ajax post..........'+errorMessage);
});
仅当ajax帖子出错且错误代码为12031(与服务器的连接已重置。)或501/12152时,才会显示此警告框。
现在还有一个我们能看到的错误代码是12152(服务器返回了无效或无法识别的响应。)。
这是一个jQuery(1.2)问题还是环境中的其他问题,还是IE7?
如果我们重新提交请求,那么它运行正常。现在我们告诉用户重新提交请求,以便保存数据。
现在这不是一个可行的解决方案。这个问题偶尔会发生。
对这些错误代码的任何见解都会非常感激。
由于
答案 0 :(得分:2)
Ajax向服务器发出请求,服务器返回501.因此,请查看服务器返回501的原因。
你应该确保XMLHttpRequest是正确的 - 正确的URL,参数等明显。
答案 1 :(得分:1)
501错误是因为您使用的服务器(大概是simpleHTTPServer之类的服务器)不支持POST请求。
要解决该错误,您需要使用支持POST请求(例如apache)的服务器