jQuery AJAX अनुरोध त्रुटि स्थिति 0

मैं स्थानीय रूप से एक एप्लिकेशन विकसित कर रहा हूं और वास्तविक सर्वर पर परेशानी में भाग रहा हूं।

जब भी मैं jQuery के साथ एक AJAX अनुरोध सबमिट करता हूं तो यह मुझे त्रुटि स्थिति: 0 और statusText: 'error' त्रुटि के साथ त्रुटि देता है।

क्रोम इंस्पेक्टर अनुरोध के लिए प्रतिक्रिया कोड भी नहीं दिखाता है, यह सिर्फ असफल कहता है।

जब मैं इसे करीब देखता हूं, तो मुझे लगता है कि सभी डेटा भेजा गया था और 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 अनुरोध लाइव सेवर पर काम नहीं करेंगे।

यह संभवतः क्या हो सकता है? धन्यवाद!

UPDATE: I've narrowed it down and the issue occurs when echo'ing a result. When I comment out the echo, no error is thrown (but, of course, no result is sent).

2
जोड़ा संपादित
विचारों: 1
तो मैंने इसे कम कर दिया है और परिणाम तब गूंजता है जब परिणाम गूंजता है। जब मैं गूंज को टिप्पणी करता हूं, तो कोई त्रुटि नहीं फेंकती है (लेकिन, ज़ाहिर है, कोई परिणाम नहीं भेजा जाता है)।
जोड़ा लेखक Daniel O'Connor, स्रोत
क्या आपका मतलब इनपुट बटन है? वहां कोई नहीं है। सेवर डेटा को ठीक से प्राप्त कर रहा है, लेकिन परिणाम को गूंजने के दौरान यह त्रुटि फेंकता है (भले ही आप बस echo true या echo json_encode (true) करें)।
जोड़ा लेखक Daniel O'Connor, स्रोत
क्या डोमेन समान है? यदि आप विभिन्न डोमेन से webservice तक पहुंच रहे हैं तो आपको crossDomain बनाना होगा: $ .ajax में सच
जोड़ा लेखक dhinesh, स्रोत
आपका सबमिट बटन किस प्रकार का है?
जोड़ा लेखक dezso, स्रोत
बस समय के लिए AJAX कॉल से त्रुटि फ़ील्ड को हटाया जा रहा है और देखें कि console.log में क्या होता है .... त्रुटि आपको जानकारी देने के लिए पर्याप्त स्पष्ट होगी ......
जोड़ा लेखक Ankur Verma, स्रोत

1 उत्तर

यह पता चला है कि समस्या कोडइग्निटर में compress_output विकल्प के कारण हुई थी। जब यह सत्य पर सेट हो जाता है, तो echo काम नहीं करता है। मदद करने की कोशिश की हर किसी के लिए धन्यवाद!

1
जोड़ा