2012-10-25 20 views
8

Tastypie ile bir API oluşturuyorum ve API'ye Backbone'dan erişmek istiyorum. Kimlik bilgilerini göndermek için bir user_id ve api_key kullanıyorum. Bunu Android'de ve curl ile yapıyorum ve bu iş harika, ama http başlığını omurgadan ayarlayabilirim.Özel bir http üstbilgisini omurgasına koyun

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" 

ve android java kullanıyorum: kıvrılma olarak

kullandığım

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); 

İkisi büyük iş, ama ben bulundu yanıtları aşağıdaki omurga içerisine bu çalıştıklarında sayfadan diğer gönderi, bu işe yaramadı. Ben yok çağrısına demenden başlık atıyorum

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); 
        } 
       } 
    ); 

, ancak bu sunucuya anithing gönderme:

Bunu çalışıyorum.

Yanlış modda ne yapıyorum?

Herkese teşekkürler.

cevap

19

Tallmaris cevap senin için tamir gerekir? Eğer App başlatmak

Bir yere :) kendinize tekrarlanan kod tasarrufu KURU tutacağız buna

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

teşekkür koymak!

bir Ajax parametreleri benim için iyi çalışır kullanma

+0

Teşekkürler! Çalışıyor! Sonunda bir notu kaldırabilirim! Ajax parametreleri, başlığı doğru bir şekilde koydu. Başlığı omurga yöntemine koymak benim için işe yaramıyor. Juanma'yı duymak için –

+0

harika! –

+0

Çok yardımcı, teşekkürler. –

3

Köşeli ayraç sırası bir yazım hatası olmadıkça, yok etmek için iki parametreyi geçiriyorsunuz, üstbilgileri ve diğer seçenekleri içeren yalnızca birini geçiriyorsunuz. Bunu deneyin: Ben zaten doğru her zaman onları ihtiyaç inanıyoruz gibi tüm ajax istekleri için kurulum için varsayılan değerler olarak başlıklarını jQuery ajaxSetup yöntemi usign öneriyoruz olsa

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

(açıkçası Dataweb sen :) uygulamasını başlatmak nerede kapsamında kullanılabilir olmasını sağlamak gerekiyordu). Bunu deniyorum ama bu sorun değil. Cevap için teşekkürler. –

İlgili konular