2

私はローカルでアプリケーションを開発していて、実際のサーバーで問題が発生しています。

jQueryを使用してAJAXリクエストを送信すると、エラーとエラーが発生しstatus:0ますstatusText: '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;
    }
}

これらの2つのスニペットは単なる例です。すべてのAJAXリクエストはライブサーバーでは機能しません。

それはおそらく何でしょうか?ありがとう!

更新:絞り込みましたが、結果をエコーすると問題が発生します。エコーをコメントアウトしても、エラーはスローされません(ただし、もちろん、結果は送信されません)。

4

1 に答える 1

1

compress_outputこの問題は、CodeIgniterのオプションが原因であることがわかりました。true に設定すると、 はecho機能しません。助けてくれたみんなありがとう!

于 2012-05-25T18:17:11.143 に答える