Konvertieren curl cmd zu jQuery $.ajax()
Ich versuche, mich ein api-Aufruf mit jquery-ajax, ich habe curl arbeiten für die api, aber mein ajax ist mit HTTP 500
Habe ich einen curl-Befehl arbeiten, der wie folgt aussieht:
curl -u "username:password" -H "Content-Type: application/json" -H "Accept: application/json" -d '{"foo":"bar"}' http://www.example.com/api
Ich habe versucht, die ajax so, aber es funktioniert nicht:
$.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");
}
});
Was bin ich ?
- Es sei denn, die API-Unterstützung von cross-domain-Anfrage mit CORS können Sie nicht! Sie können jedoch den ajax-Aufruf von der serverside, und lassen Sie dann den server muss die cURL-Zeug.
- Ich bin mit kundenspezifische Verpackungen, die nicht blockiert cross-domain-Anfrage, sofern diese denselben Ursprung, wie bekomme ich diese zu arbeiten ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Standardmäßig $.ajax() zu konvertieren
data
zu einem query-string, wenn nicht bereits ein string, dadata
hier ist ein Objekt, ändern Sie diedata
auf eine Zeichenfolge, und legen Sie dannprocessData: false
, so dass es nicht konvertiert werden, um die Abfrage-string.