jQuery AJAX请求错误状态0

时间:2012-05-25 06:06:51

标签: ajax jquery

我一直在本地开发一个应用程序,但在实际服务器上遇到了麻烦。

每当我使用jQuery提交AJAX请求时,它都会出现错误,错误为status:0statusText: 'error'

Chrome检查员甚至没有显示请求的响应代码,只是说失败了。

当我仔细检查时,我注意到所有数据都已发送,而PHP文件实际上已对其进行了处理。例如,在下面的请求中,确实创建了用户。错误的响应代码阻止了其他请求的执行(因为它们依赖于'成功'的响应)。

以下是示例请求:

var cct = $.cookie('ttc_csrf_cookie'); // csrf protection
var sUrl = "<?= base_url(); ?>user/create/";
var serialized = { 
    name: me.name, 
    email: me.email, 
    oauth_provider: 'facebook', 
    oauth_uid: me.id,
    ttc_csrf_token: cct
};
$.ajax({
    url: sUrl,
    type: "POST",
    data: serialized,
    error: function(someStuffHere) {
            //* THIS CODE RUNS. SHOWS ERROR STATUS: 0 */
    },
    success: function(user_id) {
        //******** THIS HERE NEVER RUNS ***********///    
    }
});

这是相应的PHP代码:

public function create() {
    if($this->input->post()) {
        $user['name'] = $this->input->post('name');
        $user['email'] = $this->input->post('email');
        $user['oauth_provider'] = $this->input->post('oauth_provider');
        $user['oauth_uid'] = $this->input->post('oauth_uid');
        $user['last_activity'] = date('Y-m-d H:i:s');

        $user_id = $this->Users->create_user($user);
        $this->session->set_userdata('user_id', $user_id);
        echo $user_id;
    }
}

这两个片段只是一个例子。所有AJAX请求都不能在Live服务器上运行。

它可能是什么?谢谢!

更新:我已将其缩小范围,并在回显结果时出现问题。当我注释掉echo时,不会抛出任何错误(当然,不会发送任何结果)。

1 个答案:

答案 0 :(得分:1)

原来这个问题是由CodeIgniter中的compress_output选项引起的。当它设置为true时,echo不起作用。感谢所有试图提供帮助的人!

相关问题