Contourner le Same Origin Policy
Bonjour,
Je viens de passer ma matinée à chercher sur internet comment résoudre mon problème et, bien que plein de gens rencontrent cette même difficulté, je n'ai pas réussi à trouver une solution fonctionnelle :(
Je souhaite faire de requêtes Ajax sur deux API REST différente. J'ai donc deux fonctions contenant ces appels :
Code:
1 2 3 4 5 6 7 8 9 10
| var query = "http://api.foodessentials.com/ingredientsearch?q=monmessage&sid=6982c2b5-79ff-4d55-929c-b303a18d1e87&n=10&s=1&f=json&api_key=maclé";
$.ajax({
url: query,
success: function(_data) {
console.log(_data);
},
error: function(err) {
console.log('LabelApi est down : ' + err.statusText + ' ' + err.status);
}
}); |
Code:
1 2 3 4 5 6 7 8 9 10
| var query = "http://api.nal.usda.gov/ndb/search/?format=json&q=monmessage&sort=n&max=25&offset=0&api_key=maclé";
$.ajax({
url: query,
success: function(_data) {
//traitement
},
error: function(err) {
console.log('USDA est down ' + err.statusText + ' ' + err.status);
}
}); |
Évidement, j'obtiens l'erreur : Blocage d'une requête multi-origines (Cross-Origin Request) : la politique « Same Origin » ne permet pas de consulter la ressource distante située sur http://api.foodessentials.com/ingredientsearch?... Raison : l'en-tête CORS « Access-Control-Allow-Origin » est manquant.
Pourtant, de temps en temps, la seconde requête passe et me renvois le bon résultat...
J'ai essayé milles façon (CORS, &.getJson, ...) sans succès, mais peut être m'y suis-je mal prise.
Merci d'avance pour votre aide, n'hésitez pas à demander plus de code si nécessaire !! ;)