J'essaie d'accéder à une API tierce sur http en utilisant jquery .ajax (ou .get, .post, etc.). L'API réside sur ma machine àUtilisation de JQuery pour accéder à un service de données/API sur plusieurs domaines
http://localhost:7777/server/<method>?<args>
Le serveur dispose d'une pile de méthodes pour interroger son serveur OLAP tels que login (qui renvoie une clé de connexion à utiliser avec d'autres méthodes), les bases de données (qui répertorie les bases de données sur le serveur), des cubes, des dimensions etc etc
par exemple
pour vous connecter au serveur
http://localhost:7777/server/login?user=admin&password=21232f297a57a5a743894a0e4a801fc3
Si J'entre cela dans une barre d'adresse du navigateur, je récupère les bonnes données.
Cependant, je veux faire une petite page web pour tester les appels et j'ai pensé que je devrais être capable d'utiliser jQuery pour créer les Gets et retourner les données qui sont allées au navigateur.
Heres mon code
<html>
<head>
<title>Palo Test Report</title>
<script type="text/javascript" src="scripts/jquery-1.3.2.min.js"></script>
<script type="text/javascript" language="javascript">
function calculate(){
$.ajax({
type:"GET",
url:"http://localhost:7777/server/login?user=admin&password=21232f297a57a5a743894a0e4a801fc3&callback=?",
success: function(data,textStatus){
alert(data + ":" + textStatus);
}
,
error: function(request,errorStatus,errorThrown){
alert("Error:" + errorThrown);
}
});
}
</script>
</head>
<body>
<div>Sample Palo Report #1</div>
<input type="button" value="Calculate" onclick="calculate();" />
</body>
</html>
La méthode va de au serveur et frappe le rappel de succès. Cependant, le paramètre de données est une chaîne vide. J'ai lu quelques articles sur les problèmes d'accès interdomaines via ajax et il semble que ce soit le cas lorsque le service fonctionne sur un port différent, même si je suis un peu surpris par le drapeau "succès". Une autre chose étrange est que si je crée un nouveau répertoire virtuel dans IIS et y dépose le fichier, j'appelle le callback d'erreur avec un paramètre errorThrown vide. Le service/api renvoie des chaînes simples, pas json, donc getJSON ne fonctionne pas.
Est-ce que j'essaye avec jQuery?
J'ai une solution de contournement mais c'est vraiment moche!
Merci à l'avance
G
Ce n'est plus vrai. La plupart des gens considèrent que 'JSONP' et' CORS' sont des appels Ajax. Les deux nécessitent un support du serveur. – hippietrail
@hippietrail Ajouté –