J'essaie d'appeler un service Web .NET, à partir de javascript, qui renvoie un document XML. Le service Web est situé sur un serveur Web différent de mon application. Je n'ai aucun contrôle sur le service Web. J'ai appelé avec succès le service en utilisant jQuery en réglant le dataType sur jsonp et je peux voir que le document XML est retourné dans Firebug. Cependant, j'obtiens une erreur dans la console Firebug "missing, before statement" où il semble que l'on essaye d'analyser le xml renvoyé (à json peut-être ??). Des idées ou quelle est la meilleure façon d'appeler un service Web inter-domaine qui renvoie xml? Merci beaucoup!Appel de service Web inter-domaine Javascript
Répondre
someting comme ceci:
$.getJSON("http://yoursite.com/xml2json.php?callback=?", {feed:"http://agency.nd.edu/agencynd-team.xml"}, function(data) { // process data here } }); <?php header('content-type: application/json; charset=utf-8'); if(strlen($_GET["feed"]) > 13) { $xml = file_get_contents(urldecode($_GET["feed"])); if($xml) { $data = @simplexml_load_string($xml, "SimpleXMLElement", LIBXML_NOCDATA); $json = json_encode($data); echo isset($_GET["callback"]) ? "{$_GET[’callback’]}($json)" : $json; } } ?>
Le format de données JSON-P est un programme JavaScript. Si vous utilisez JSON-P, les données que vous récupérez doivent être JavaScript.
JSON-P fonctionne en chargeant le document à l'aide d'un élément <script>
(et qui ne va jamais travailler pour les données XML arbitraires)
Vos options sont:
- Persuadez quiconque fait contrôler le service Web pour vous donner une interface JSON-P
- Persuadez quiconque ne contrôle le service Web pour accorder votre autorisation de site pour y accéder via CORS (note limited browser support)
- Proxy nous la b service à travers votre propre serveur afin que votre JS fonctionne sur le same origin
Si vous définissez dataType vous jsonp devriez obtenir une réponse enveloppé dans l'appel de fonction. Par exemple, si vous vous attendez à obtenir
object {"key": "value"}
la réponse pour jsonp devrait être
parseRespone({"key":"value"});
La raison est que jsonp ajoute la balise <script> à votre tête de page il devrait donc ajouter le code javascript valide Là.
Si vous n'avez aucune possibilité de contacter les développeurs du serveur, je suggère de faire un appel ajax à votre page où la page ferait une connexion curl au serveur .NET et récupèrerait la réponse en json pur.
Une possibilité est d'éviter l'utilisation de JSON et d'utiliser à la place cURL et un proxy PHP. Envoyez les données à un script PHP sur votre serveur, qui forme ensuite une session cURL avec le script sur l'autre domaine et renvoie le résultat à l'appelant AJAX d'origine.
- 1. Appel interdomaine de domaine croisé à l'API Web localhost
- 2. Appel de service Web
- 3. Outlook service web appel
- 4. Comment rendre le service Web disponible pour l'accès interdomaine?
- 5. Appel de service Web Salesforce
- 6. Appel de service Web fileté
- 7. appel de service Web échoue
- 8. Javascript Appel de service Web ASMX - Gestion des exceptions
- 9. Ajax (appel de service web) avec MVC
- 10. appel de service Web tomcat6 du service Web methodnotfounderror
- 11. XMLHttpRequest - Problèmes avec un appel d'API interdomaine
- 12. appel du service Web ASP.net à partir du client javascript
- 13. appel service web spécifique sur
- 14. Appel de service Web Java de RDz
- 15. Ajax appel à Restful Web Service
- 16. appel javascript de windows service ... possible?
- 17. appel de sortie silverlight un service Web
- 18. Appel de service Web avec plusieurs paramètres
- 19. Appel de service Web MonoDroid Async
- 20. exception sur appel de service Web
- 21. Appel de service Web - Attributs générés automatiquement
- 22. Appel de Java Web Service Constructor
- 23. Appel d'un service Web de manière atomique?
- 24. Appel de service web continu ios
- 25. Appel de service Web asynchrone dans C#
- 26. Rails 3 - appel de service Web cache
- 27. Appel de service web PHP SOAP
- 28. Appel de service Web depuis Play 2.0
- 29. appel de service Web renvoie html
- 30. Appel de service Web Différentes classes d'implémentation de service
Vous ne pouvez pas utiliser jsonp avec XML. Vous devrez utiliser un proxy sur le serveur. – evan