にカール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
を変換することにより、
APIがCORSでのクロスドメイン要求をサポートしていない限り、あなたはできません!しかし、サーバー側へのajax呼び出しを行い、サーバーにcURLを実行させることができます。 – adeneo
@adeneoドメイン間の要求をブロックしないカスタムパッケージを使用していますが、これは同じ起源であると仮定して、どのように動作させるのですか? – krisrak