Jquery ajax调用结果301错误永久移动

时间:2015-02-26 17:57:54

标签: jquery ajax

我的设置是对php文件的jquery ajax调用。如果php处理时间达到大约40秒,则jquery可以正常工作。如果php需要处理更长时间,则ajax调用将失败。

jquery代码:

$.ajax({
    url: "http://example.com/path/to/folder/phpfile.php",
    type: "post",

    success: function(data){
        alert("good!"); 
    },
    error:function(xhr,status,error){
        alert("failure");
        console.log(status, error);
    }
});

PHP文件:

set_time_limit(0);  // no time limit is imposed
header("HTTP/1.1 200 OK");
sleep(55); //this will trigger error if >40
echo "1";
exit();

.htaccess文件: (这是为了将所有www.example.com电话重定向到http://example.com

RewriteEngine On
RewriteCond %{HTTP_HOST} !^example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]

我试过了: 1)在php文件的开头发送200 ok代码 2)我在php文件中有一个set_time_limit(0),所以它不应该超时。 3)我使用非永久链接作为php文件的直接地址

导致此行为的原因是什么?如何解决?

1 个答案:

答案 0 :(得分:1)

为了将来参考,我设法解决了这个问题。

此代码有效:

header('Cache-Control: no-cache'); 

set_time_limit(0);  // no time limit is imposed

for($i = 1; $i <= 8; $i++) {
   echo "$i<br>";
   sleep(10);
   ob_flush();
   flush();
};
echo "stop";
exit();

所以解决方法是在文件顶部添加“header no cache”命令,并在执行期间每隔10秒左右添加一个echo后跟ob_flush(ob称为php Output Buffers)和flush命令。 php脚本。

我希望您会发现此解决方案对您有所帮助