Angularjs. Jsonp. Envoi de données

J'essaie d'envoyer des données en utilisant la requête JSONP dans AngularJS.

$http({ method: 'jsonp', url: 'http://test.local/?callback=JSON_CALLBACK', /// Add '?callback=JSON_CALLBACK' data: JSON.stringify(request) }) .success(function (data, status, headers, config) { }); 

Est-ce possible?

Oui, il est possible de voir la fonction $ http.jsonp . En bref, vous devriez faire quelque chose comme

 $http.jsonp('http://www.example.com?callback=JSON_CALLBACK') .success (function(data, ...) { //your data here ... }) 

Soyez conscient que vous devez définir callback = JSON_CALLBACK comme paramètre de requête de votre appel http afin que l'angulaire puisse faire sa magie.

Pour envoyer des données avec votre demande, cela dépendra si vous voulez des paramètres de requête (1), demandez des données de message (2) ou les deux (3).

Cas 1 :

 $http.jsonp('http://www.example.com?callback=JSON_CALLBACK', {params : Object | String}) 

Selon la documentation "Carte des chaînes ou objets qui seront tournés vers? Key1 = value1 & key2 = value2 after the url. Si la valeur n'est pas une chaîne, elle sera JSONified".

Cas 2:

 $http.jsonp('http://www.example.com?callback=JSON_CALLBACK', {data : Object | String}) 

Cas 3:

 $http.jsonp('http://www.example.com?callback=JSON_CALLBACK', {params : Object | String, data : Object | String}) 

Réponse tardive, mais: les data ne fonctionnent que pour les demandes POST . Cependant, vous ne pouvez pas faire une requête POST avec JSONP – comme cela se produit, insère une <script> dans votre DOM avec src set à l'URL de la requête; Lorsque votre navigateur évalue le script, il appellera le paramètre callback (Angular remplace fondamentalement JSON_CALLBACK par un pointeur vers votre fonction de succès).

TL; DR: la seule façon d'envoyer des choses au serveur à l'aide de JSONP utilise la touche Params dans la configuration.