2012-10-25 20 views
8

मैं टेस्टपी के साथ एक एपीआई बना रहा हूं और मैं बैकबोन से एपीआई तक पहुंच बनाना चाहता हूं। प्रमाण पत्र भेजने के लिए मैं user_id और api_key का उपयोग करता हूं। मैं एंड्रॉइड में और कर्ल के साथ ऐसा करता हूं और यह बहुत अच्छा काम करता है, लेकिन मैं बैकबोन से http हेडर सेट कर सकता हूं।रीढ़ की हड्डी में एक कस्टम http शीर्षलेख रखें

कर्ल में मैं का उपयोग करें:

curl --dump-header - -H "Accept: application/json" -H "Content-Type: application/json" -H "user_id: 32" -H "api_key: 69950" -X DELETE "http://127.0.0.1:8000/api/v1/deletenote/66/?format=json" 

और एंड्रॉयड जावा में मैं का उपयोग करें:

HttpDelete requestDELETE = new HttpDelete(); 
    requestDELETE.setHeader("Content-type", "application/json"); 
    requestDELETE.setHeader("Accept", "application/json"); 
    requestDELETE.setHeader(Constants.HEADER_USER_ID, user_id); 
    requestDELETE.addHeader(Constants.HEADER_API_KEY, key); 

उन दोनों महान काम करते हैं, लेकिन जब मैं जवाब है कि मैं में पाया निम्नलिखित रीढ़ में यह कोशिश पेज से दूसरी पोस्ट, यह काम नहीं किया।

मैं इस कोशिश कर रहा हूँ:

var removeNote = new DeleteNoteModel({id:this.model.toJSON().id},{ query:this.model.toJSON().id}); 


removeNote.destroy({ 
     headers: {'user_id':dataWeb.get("id"),'api_key':dataWeb.get("api_key")} 
     },{ 
        async:false, 
        error: function(model, response){ 
         console.log("KO_REMOVE_NOTE"); 
         console.log(response); 
        }, 
        success : function(model, response){ 
         console.log("OK_REMOVE_NOTE"); 
         console.log(response); 
        } 
       } 
    ); 

मैं हैडर डाल रहा हूं जब मैं नष्ट कॉल करने के लिए कहते हैं, लेकिन इस सर्वर से anithing न भेजें।

मैं गलत तरीके से क्या कर रहा हूं?

सभी के लिए धन्यवाद।

उत्तर

19

Tallmaris जवाब आपके लिए इसे ठीक करना चाहिए, हालांकि मैं सभी ajax अनुरोध के लिए सेटअप करने के लिए usign jQuery ajaxSetup विधि मूलभूत मूल्यों के रूप में हेडर के रूप में मेरा मानना ​​है कि आप उन्हें हर समय वैसे भी सही की जरूरत है की सिफारिश करेंगे?

कहीं जहाँ आप अनुप्रयोग का शुभारंभ कि करने के लिए

$.ajaxSetup({ 
    headers: { 
     'user_id':dataWeb.get("id"), 
     'api_key':dataWeb.get("api_key") 
    } 
}); 

धन्यवाद डाल आप अपने आप को बार-बार कोड का एक बहुत कुछ बचा सकते हैं :) यह सूखा रखने के!

+0

धन्यवाद !!! यही काम है! मैं अंत में एक नोट हटा सकते हैं! AJAX पैरामीटर हेडर सही ढंग से डाल दिया। रीढ़ की हड्डी विधि में हेडर डालना मेरे लिए काम नहीं करता है। –

+0

जुआनमा सुनने के लिए बहुत अच्छा! –

+0

बहुत उपयोगी, धन्यवाद। –

3

ऐसा लगता है कि आप नष्ट करने के लिए दो पैरामीटर पास कर रहे हैं, हेडर और अन्य विकल्पों को एक साथ पास करें, जब तक ब्रैकेट ऑर्डर एक टाइपो न हो। इस प्रयास करें:

removeNote.destroy({ 
    headers: { 
     'user_id':dataWeb.get("id"), 
     'api_key':dataWeb.get("api_key") 
    }, // there was an extra close-open curly here... 
    async:false, 
    error: function(model, response){ 
     console.log("KO_REMOVE_NOTE"); 
     console.log(response); 
    }, 
    success : function(model, response){ 
     console.log("OK_REMOVE_NOTE"); 
     console.log(response); 
    } 
}); 
+0

एक अजाक्स मापदंडों मेरे लिए अच्छा काम का उपयोग करना (जाहिर है आप यह सुनिश्चित करें कि dataWeb जहां एप्लिकेशन लॉन्च :) के दायरे में उपलब्ध है आवश्यकता होगी)। मैं कोशिश करता हूं लेकिन यह समस्या नहीं है। जवाब के लिए धन्यवाद। –

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