La conversion curl cmd pour jQuery $.ajax()
Je suis en train de faire un appel d'api avec ajax de jquery, j'ai curl de travail pour l'api, mais mon ajax est en train de lancer HTTP 500
J'ai une boucle de commande de travail qui ressemble à ceci:
curl -u "username:password" -H "Content-Type: application/json" -H "Accept: application/json" -d '{"foo":"bar"}' http://www.example.com/api
J'ai essayé ajax comme ça, mais il ne fonctionne pas:
$.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");
}
});
Ce qui me manque ?
À moins que l'API prend en charge la croix-demande de domaine avec de la SCRO, vous ne pouvez pas! Vous pouvez toutefois faire appel ajax à la serverside, puis laissez-le serveur ne le cURL choses.
Je suis, en utilisant des emballages qui ne bloque pas la croix de domaine demande, en supposant que c'est la même origine, comment faire pour que cela fonctionne ?
Je suis, en utilisant des emballages qui ne bloque pas la croix de domaine demande, en supposant que c'est la même origine, comment faire pour que cela fonctionne ?
OriginalL'auteur krisrak | 2013-11-22
Vous devez vous connecter pour publier un commentaire.
Par défaut $.ajax() permet de convertir
data
à une chaîne de requête, si ce n'est déjà une chaîne, depuisdata
ici est un objet, changer ladata
à une chaîne, puis définissezprocessData: false
, de sorte qu'il n'est pas converti en chaîne de requête.OriginalL'auteur krisrak