jQuery ajax post返回501错误代码

时间:2010-11-23 16:10:56

标签: jquery ajax internet-explorer

我们正在使用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?

如果我们重新提交请求,那么它运行正常。现在我们告诉用户重新提交请求,以便保存数据。

现在这不是一个可行的解决方案。这个问题偶尔会发生。

对这些错误代码的任何见解都会非常感激。

由于

2 个答案:

答案 0 :(得分:2)

Ajax向服务器发出请求,服务器返回501.因此,请查看服务器返回501的原因。

你应该确保XMLHttpRequest是正确的 - 正确的URL,参数等明显。

答案 1 :(得分:1)

501错误是因为您使用的服务器(大概是simpleHTTPServer之类的服务器)不支持POST请求。

要解决该错误,您需要使用支持POST请求(例如apache)的服务器