2013-11-22 7 views
8

にカールCMDの変換、私はAPIのカール作業がありますが、私のAjaxはHTTP 500

を投げている私は、curlコマンドを持っていますそれは次のようになります作業:

curl -u "username:password" -H "Content-Type: application/json" -H "Accept: application/json" -d '{"foo":"bar"}' http://www.example.com/api 

私はこのようなAJAXを試してみましたが、それが動作していません。

$.ajax({ 
    url: "http://www.example.com/api", 
    beforeSend: function(xhr) { 
     xhr.setRequestHeader("Authorization", "Basic " + btoa("username:password")); 
    }, 
    type: 'POST', 
    dataType: 'json', 
    contentType: 'application/json', 
    data: {foo:"bar"}, 
    success: function (data) { 
     alert(JSON.stringify(data)); 
    }, 
    error: function(){ 
     alert("Cannot get data"); 
    } 
}); 

私は何をしないのですか?デフォルトの$アヤックス()文字列の入っていない場合dataがここにオブジェクトがあるので、それが変換されないように、processData: falseを文字列にdataを変更して設定し、クエリ文字列にdataを変換することにより、

+0

APIがCORSでのクロスドメイン要求をサポートしていない限り、あなたはできません!しかし、サーバー側へのajax呼び出しを行い、サーバーにcURLを実行させることができます。 – adeneo

+0

@adeneoドメイン間の要求をブロックしないカスタムパッケージを使用していますが、これは同じ起源であると仮定して、どのように動作させるのですか? – krisrak

答えて

18

クエリ文字列。

$.ajax({ 
    url: "http://www.example.com/api", 
    beforeSend: function(xhr) { 
     xhr.setRequestHeader("Authorization", "Basic " + btoa("username:password")); 
    }, 
    type: 'POST', 
    dataType: 'json', 
    contentType: 'application/json', 
    processData: false, 
    data: '{"foo":"bar"}', 
    success: function (data) { 
     alert(JSON.stringify(data)); 
    }, 
    error: function(){ 
     alert("Cannot get data"); 
    } 
}); 
+1

ありがとう、これは私の質問に答えて、ここhttp://stackoverflow.com/questions/30992688/creating-task-using-wunderlist-api/31015511#31015511 –

関連する問題