2017-10-16 21 views
5

मैं AJAX का उपयोग कर फ़ॉर्म डेटा भेजने की कोशिश कर रहा हूं। लेकिन AJAX ऑपरेशन में एक त्रुटि है और केवल "त्रुटि" कॉलबैक फ़ंक्शन निष्पादित किया गया है। यहाँ मैं क्या करने की कोशिश की है:AJAX कॉल अपेक्षित काम नहीं कर रहा है

$("#issue_submit").click(function (e) { 

    console.log("clicked on the issue submit"); 
    e.preventDefault(); 

    // Validate the form 
    var procurementForm = $("#it_procuremet_form"); 

    if($(procurementForm).valid()===false){ 
     return false; 
    } 

    // Show ajax loader 
    appendData(); 

    var formData = $(procurementForm).serialize(); 

    // Send request to save the records through ajax 
    var formRequest = $.ajax({ 
     url: app.baseurl("itprocurement/save"), 
     data: formData, 
     type: "POST", 
     dataType: "json" 
    }); 

    formRequest.done(function (res) { 
     console.log(res); 
    }); 


    formRequest.error(function (res, err) { 
     console.log(res); 
    }); 


    formRequest.always(function() { 
     $("#overlay-procurement").remove(); 
     // do somethings that always needs to occur regardless of error or success 
    }); 

}); 

मार्गों परिभाषित कर रहे हैं के रूप में:

$f3->route('POST /itprocurement/save', 'GBD\Internals\Controllers\ITProcurementController->save'); 

इसके अलावा, मैं कहा:

$f3->route('POST /itprocurement/save [ajax]', 'GBD\Internals\Controllers\ITProcurementController->save'); 

मैं नियंत्रक वर्ग में ajax कॉल करने के लिए एक सरल स्ट्रिंग लौटने की कोशिश की । ITProcurementController.php:

public function save($f3) 
{ 
    echo 'Problem!'; 
    return; 
    $post = $f3->get('POST'); 
} 

लेकिन केवल 'त्रुटि' कॉलबैक निष्पादित किया जाता है। मैं यह नहीं ढूँढ सकता कि क्या गलत है। कृपया मदद करे।

+0

जब आप अनुरोध करते हैं, तो क्रोम या फ़ायरफ़ॉक्स में डेवलपर टूल में नेटवर्क टैब खुलता है और हमें बताएं कि आपको कौन सी प्रतिक्रिया मिल रही है – Chris

उत्तर

5

आप निर्दिष्ट करते हैं कि आप वापस json उम्मीद:

// Send request to save the records through ajax 
var formRequest = $.ajax({ 
    url: app.baseurl("itprocurement/save"), 
    data: formData, 
    type: "POST", 
    // Here you specify that you expect json back: 
    dataType: "json" 
}); 

क्या आप वापस भेज json नहीं है:

echo 'Problem!'; 
return; 

यह एक गैर उद्धृत स्ट्रिंग, जो वैध json नहीं है।

मान्य JSON वापस भेजने के लिए, आप की आवश्यकता होगी:

echo json_encode('Problem!'); 
return; 

तुम भी dataType विशेषता को दूर कर सकता है, अपनी आवश्यकताओं पर निर्भर करता है।

संबंधित मुद्दे