Ajax请求返回HTTP 503,但脚本正常工作

问题描述:

今天我陷入了与Ajax的问题​​。我正在做这个请求:Ajax请求返回HTTP 503,但脚本正常工作

$.ajax({ 
    type: 'POST', 
    url: 'http://hostname/controller/action', 
    data: {param1 : 'foo'}, 
    timeout: 5000, 
    success: function(data) { 
     alert(data); 
    }, 
    error: function(data) { 
console.log(data) 
    } 
    }); 

基于Zend的服务器端脚本。服务器 - apache2。脚本的响应是我期望的,但HTTP代码是503(服务暂时不可用)。 如果我打开这个URL作为浏览器地址栏获取 - 它返回我期望的(字符串),但HTTP响应代码也是503.

什么可能导致它?

UPD:操作包含echo "Some string"; GET或POST - 不重要。 插头:

Accept:*/* 
Accept-Encoding:gzip, deflate 
Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4 
Connection:keep-alive 
Content-Length:18 
Content-Type:application/x-www-form-urlencoded 
Host:hostname 
Origin:http://hostname 
Referer:http://hostname/controller 
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 
X-Requested-With:XMLHttpRequest 
+0

503谢谢你能请发送的动作代码?行动中发生了什么? –

+0

您是否也可以发布请求标头和正在传入的主体 - 在网络面板中检查chrome开发工具。 –

+0

在浏览器中它是GET方法,并且在ajax中使用POST方法,因此响应必须不同,具体取决于您的Web服务是如何定义的。 – Codelord

问题是在服务器端,Zend公司是modifyied总是返回所有回复

使用完成而不是成功和错误。

$.ajax({ 
    type: 'POST', 
    url: 'http://hostname/controller/action', 
    data: {param1 : 'foo'}, 
    complete: function(response) { 
     if(response['status'] === 200) { 
     // success 
     var data = response['responseJSON']; 
     // ... 
     } else { 
     // ... 
     } 
    } 
    }); 
+0

好的,但是如果我们需要处理服务器不响应200 OK的情况,则会适用。但我的服务器总是返回503 – Clyde

+0

无论如何,谢谢你的回复 – Clyde