Travailler avec le Facteur, mais pas avec Ajax?
Je vais tenter de faire une simple requête GET à partir d'un serveur d'hébergement de certaines données de compte. La demande nécessite une Autorisation de l'en-tête afin de fonctionner correctement. J'ai exécuté la requête GET et extrait les données avec succès en Facteur, mais de tenter de le faire en Javascript via Ajax résultats dans un "non Valide code de statut HTTP 405" erreur.
Ci-dessous un lien vers un violon et une capture d'écran du Facteur paramètres. Merci.!
$.ajax({
beforeSend: function(xhrObj){
xhrObj.setRequestHeader("Authorization","Bearer tj7LTLycpQC6DRup5BkHUO7uVbYaAZI40");
},
type: "GET",
url: "https://api05.iq.questrade.com/v1/accounts",
success: function(e){
console.log(e)
}
});
http://jsfiddle.net/Ldjbp2j8/1/
OriginalL'auteur dgalati54 | 2015-07-16
Vous devez vous connecter pour publier un commentaire.
À partir de Chrome JS console:
En raison de l'ajout d'un en-tête d'Autorisation, vous avez fait la demande complexe. Cela nécessite le navigateur de faire un OPTIONS de contrôle en amont demande pour demander la permission d'envoyer la demande complexe.
Le serveur vous faites la demande à l'est de répondre en disant que les OPTIONS les demandes ne sont pas autorisés à cette URL.
Vous aurez besoin de modifier le serveur de sorte qu'il réponde de manière appropriée pour le contrôle en amont de la SCRO demande.
Facteur n'a pas besoin de faire un contrôle en amont de la demande car votre navigateur fiducies du Facteur de code. Il ne sait pas si elle peut faire confiance le code qu'il a reçu de JSFiddle (AKA potentiel mal hacker site) avec les données api05.iq.questrade.com (AKA potentiel des services bancaires en ligne ou site Intranet de la société) est disposé à partager avec elle.
De faire une demande directe avec Ajax: oui.
OriginalL'auteur Quentin
Regarder les erreurs de la console:
C'est la question de la SCRO. Les navigateurs envoyé OPTIONS aka pré-vol demande au serveur si le domaine ne correspond pas avec le domaine de l'exécution de code.
Et vous devez ajouter les en-têtes de réponses.
Vous devez modifier le serveur de gérer cela.
Vous pouvez également utiliser JSONP comme une alternative.
Oui. Vous êtes correct. Je ment alternative à l'ensemble de la solution.
OriginalL'auteur Xeon