2012-05-11 15 views
5

पर सफल निष्पादन के बावजूद Jquery AJAX वापसी त्रुटि 500 ​​मुझे कोडिनेटर और JQuery अजाक्स पोस्ट के साथ कोई समस्या आ रही है।सर्वर पक्ष

मेरे Javscript

 $('.remove').click(function(){ 
     var category=event.target.id; 
     var id=$('input[name=article_id]').val(); 
     var p={}; 
     p['id']=id; 

     $.ajax({ 
      type: "POST", 
      url: "/backend.php/blog/removeCategories", 
      async:true, 
      cache:false, 
      data: {id: id, category: category } 
      }).done(function(msg){ 
       jQuery('#category_list').load('/backend.php/blog/refreshCategories/',p,function(str){}); 
      }); 

मेरे CodeIgniter के नियंत्रक

function removeCategories(){ 
     $id=$_POST['id']; 
     $category_id=$_POST['category']; 

     $this->article->removeCategory($category_id,$id); 
    } 

मैं ajax समारोह काम करने के लिए है, क्योंकि वहाँ हमेशा एक त्रुटि 500 ​​सर्वर से प्राप्त नहीं कर सकते। हालांकि, फायरबग रिटर्न देता है कि संसाधनों को लोड करने में त्रुटि हुई है, फ़ंक्शन हटाएं श्रेणियां किसी भी तरह से निष्पादित की गई थीं।

+0

अपने सर्वर साइड लॉगिंग नहीं कर रहा है, और यह भी मर जाता है और कुछ गंभीर त्रुटि है, जबकि यह कुछ नहीं करता है। PHP त्रुटि लॉगिंग सक्षम करें और घातक त्रुटियों के लिए देखें। – hakre

उत्तर

3

आपकी त्रुटि मॉडल में हो सकती है। यह पता लगाने के लिए क्रोम देव टूलकिट का उपयोग करें कि लौटा हुआ पृष्ठ सामग्री क्या है। HTTP CODE 500 का अर्थ है सर्वर त्रुटि, आमतौर पर PHP के भीतर सिंटैक्स समस्या के कारण।

इसके अलावा, अपने AJAX कॉल में आपको success: और error: का उपयोग करना चाहिए। यदि कोड एक त्रुटि फेंकता है तो यह निष्पादन को रोकने की अनुमति देगा।

आप backend.php/ क्यों कॉल कर रहे हैं क्या आप index.php का उपयोग नहीं कर रहे हैं ??

ऐसा करने का एक और तरीका .load() का उपयोग करने के बजाय है, आप बस नियंत्रक से एचटीएमएल वापस भेज सकते हैं और फिर success: function(data){} कंटेनर में जोड़ सकते हैं। यह आपको निगरानी करने की अनुमति देगा कि AJAX कॉल error() या success() था और तदनुसार कार्य करें।

+0

हाय माइक, backend.php एक संशोधन था जिसे मैंने सीआई के साथ किया था ताकि एक ही सीआई इंस्टॉलेशन में दो एप्लिकेशन चलाए जा सकें। धन्यवाद, आपने मुझे सिंटैक्स त्रुटियों के लिए कोड में गहराई से खोजने के लिए बस मुझे देखा। –

+0

हाय दोस्तों, मैंने उपर्युक्त मुद्दे को हल कर लिया है। मेरे सीआई_मोडेल में एक समस्या बन जाती है। मुझे यह साझा करना अच्छा लगेगा कि मुझे समस्या कैसे मिली लेकिन मुझे वर्तमान में उत्तर देने के लिए प्रतिष्ठा की कमी है। लेकिन आपको बहुत धन्यवाद। Kudos =) –

+0

सही दिशा में आपको इंगित करने के लिए आप हमारे उत्तरों में से एक को कैसे स्वीकार करते हैं? चूंकि यह मॉडल में था, मैं कहता हूं कि आप इसे मुझे देते हैं;) – gorelative

6

सुनिश्चित करें कि data विकल्प में निम्न परिवर्तन करके आपका डेटा ठीक से पारित किया जा रहा है।

$.ajax({ 
      type: "POST", 
      url: "/backend.php/blog/removeCategories", 
      async:true, 
      cache:false, 
      data: {"id": id, "category": category } 
      }).done(function(msg){ 
       jQuery('#category_list').load('/backend.php/blog/refreshCategories/',p,function(str){}); 
      }); 

जिस तरह से आपने इसे कोड किया है, प्रत्येक कुंजी मूल्य जोड़ी की कुंजी चर के मूल्य पर सेट की जा रही है।

+1

हां मैं सहमत हूं- उन वर्गों को बनाने में आम misatake। यह देखने के लिए फिडलर का भी उपयोग करें कि सर्वर क्या कहता है- यह सबसे अधिक प्रोबॉले कहता है कि आपको आईडी निर्दिष्ट करने की आवश्यकता है- यदि यह कोड को किसी भी तरह से चलाता है .. तो आपको इसे फँसाने की ज़रूरत है क्योंकि अगर इसे रीटुरिंगॉन त्रुटि 500 ​​ – ppumkin

+0

में लगता है तो इसे चलाने की आवश्यकता नहीं है एक कानूनी समस्या हो। हालांकि समस्या मेरे चर के साथ-साथ आपके सुझाए गए समाधान को बदलने के बावजूद भी बनी रहती है। –

+0

क्या आप हेडर जानकारी फायरबग से पोस्ट कर सकते हैं, इसलिए हम देख सकते हैं कि आपके द्वारा पारित डेटा ठीक से पारित किया जा रहा है या नहीं? – marteljn

2

कोडनिर्देशक में यदि आपके पास csrf_protection कॉन्फ़िगरेशन में सक्रिय है तो यह त्रुटि 500 ​​लौटाएगा!

इसे हल करने के लिए आपको csrf मान भेजना होगा।

उदाहरण:

$.ajax({ 
      type: "POST", 
      url: "http://example.com", 
      data: { 
       '<?php echo $this->security->get_csrf_token_name(); ?>' : 
       '<?php echo $this->security->get_csrf_hash(); ?>' 
       } 
     }); 
संबंधित मुद्दे