Prototype或JQuery可以在AJAX请求上返回HTTP状态代码

4 javascript ajax jquery transport prototypejs

url = "http://example.com"
new Ajax.Request(url, {
  onComplete: function(transport) {
    alert(transport.status);
  }
});
Run Code Online (Sandbox Code Playgroud)

我希望如果网站正常工作则返回200状态,如果不工作则返回500等等.但是该代码一直返回0.

最终,我希望有一个setinterval函数,定期ping一个网站的正常运行时间状态.

小智 7

使用JQuery,您应该使用类似于您拥有的代码获取您的状态,它将是这样的:

$.ajax({
  url: 'some.url.com',
  type: 'POST',
  complete: function(transport) {
     if(transport.status == 200) {
         alert('Success');
     } else {
         alert('Failed');
     }
  }
 });
Run Code Online (Sandbox Code Playgroud)

如果你想使用原型,你的代码应该只添加:

      onXYZ:function(transport){
      }
Run Code Online (Sandbox Code Playgroud)

在上面的文本中,XYZ应该替换为您要为响应捕获的http状态代码.

希望这可以帮助

  • 在您的jQuery代码中,transport.status始终返回0而不是远程域请求所需的实际状态编号.如果它在同一个域上,它将返回200,但如果你尝试跨越域,则得到0. (6认同)