【问题标题】:jQuery ajax post returns with 501 error codejQuery ajax post 返回 501 错误代码
【发布时间】:2010-11-23 16:10:55
【问题描述】:

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

表单有两个文本区域(一个禁用,一个启用)和一个复选框。还有一个提交按钮。

还有一个 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 post 出现错误且错误代码为 12031(与服务器的连接已重置。)或 501/12152 时才会显示此警告框。

现在我们可以看到另外一个错误代码是 12152(服务器返回了无效或无法识别的响应。)。

这是 jQuery(1.2) 问题还是环境中的其他问题,还是 IE7?

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

现在这不是一个可行的解决方案。而且这个问题是偶发的。

非常感谢您对这些错误代码的任何见解。

谢谢

【问题讨论】:

    标签: jquery ajax internet-explorer


    【解决方案1】:

    ajax向服务器做请求,服务器返回501。所以,看看服务器为什么返回501。

    并且您应该确保发出的 XMLHttpRequest 是正确的 - 显然是正确的 url、参数等。

    【讨论】:

    • 我看到有时 url 格式错误,这导致了问题。现在问题是我并不总是看到这个问题。一旦我收到此错误并重新提交页面,它就可以正常工作。所以我不知道为什么有时 url 格式不正确。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-17
      • 2014-09-10
      • 2017-05-27
      • 2015-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多