2012-10-25 4 views
8

私はTastypieでAPIを作成しています。私はBackboneからAPIにアクセスしたいと思います。 資格情報を送信するには、user_idとapi_keyを使用します。私はアンドロイドでこれを行い、カールとこの作業は素晴らしいですが、私はバックボーンからhttpヘッダーを設定できます。それらの両方は素晴らしい仕事バックボーンにカスタムhttpヘッダーを置く

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

が、私は私が見つけた応答以下のバックボーンでこれを試してみてください。

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" 

と、私が使用してアンドロイドJavaで:私が使用したカールで

ページからの他の投稿、これは動作しませんでした。私はこのしようとしています

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の答えはあなたのためにそれを修正する必要がありますか?あなたはアプリを起動

どこかは、あなたが:)自分で繰り返しコードの多くを保存DRYそれをしておこうというの

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

おかげで入れて! Ajaxのパラメータを使用して

(明らかにあなたがdataWebは、アプリを起動する:)どこの範囲で使用可能であることを保証するために必要があるだろう)

+0

ありがとうございます!それは仕事です!私は最後にメモを取り除くことができます! ajaxパラメータはヘッダを正しく配置します。バックボーンの方法でヘッダーを置くことは私のためには機能しません。 –

+0

フアンマを聞いて偉大な! –

+0

非常に助かりました、ありがとう。 –

3

大括弧の順序が誤字でない限り、2つのパラメータを破棄して、ヘッダーと他のオプションを含むものだけを渡しているようです。これを試してみてください:私はあなたがすべての時間がとにかく右それらを必要と考えているように私はセットアップにusign jQueryのにすべてのAJAX要求のデフォルト値としてヘッダをajaxSetup方法をお勧めしますけれども

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

は私のために正常に動作します。私はこれを試みますが、これは問題ではありません。答えをありがとう。 –

関連する問題