Javascript: “ Non "Access-Control-Allow-Origin' en-tête est présent sur la ressource demandée. Origine 'null' est donc pas autorisé à accéder. ”
J'ai besoin d'écrire une page web qui peut obtenir certaines informations dont j'ai besoin avec JavaScript.
Le serveur est un bambou sever et j'essaie d'utiliser l'API REST de leur dans mon JavaScript.
https://developer.atlassian.com/display/BAMBOODEV/REST+Api
Ce qui est curieux, c'est que je peux effectuer toutes les demandes en tapant le lien dans le navigateur, ou avec la commande curl en termanal. Il fonctionne également via un script python. Je peux recevoir les données avec toutes les méthodes mentionnées dans le paragraphe. C'est juste que quand je vais à JavaScript, il ne fonctionne plus.
J'ai suivi les informations dans le lien ci-dessous pour faire de la SCRO demande.
http://www.codeproject.com/Articles/185506/AJAX-Cross-Origin-HTTP-request
Ci-joint est mon code. Je me demandais si j'avais raté quelque chose.
<!doctype html>
<html>
<head>
<meta http-equiv="Access-Control-Allow-Origin" content="*">
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">
<script src="jquery-1.11.1.js"></script>
<script src="crypto-js.js"></script>
<script type="text/javascript">
function showResponse (response) {
RESPONSE = response;
if (this && this.url && (typeof(this.url) == "string")) {
var anchor = jQuery("#url");
anchor.text(this.url.toString());
anchor.attr('href', this.url.toString());
}
jQuery("#output").text(JSON.stringify(response, null, ' '));
}
</script>
<script type="text/javascript">
console.log("a")
var cor = null; //cor stands for Cross-Origin request
if (window.XMLHttpRequest) {
console.log("support xmlhttprequest");
cor = new XMLHttpRequest();
}else {
console.log("Your browser does not support Cross-Origin request!");
}
if("withCredentials" in cor){
cor.open('GET', 'http://bamboo.example.com/rest/api/latest/stuff', true);
cor.withCredentials = true;
cor.setRequestHeader('Authorization', 'Basic encoded_stuff');
cor.send();
}
cor.onload = function(){
var responseText = xhr.responseText;
console.log(responseText);
};
cor.onerror = function() {
console.log('There was an error!');
};
</script>
</head>
<body>
<div>URL:<a id="url"></a></div>
<hr>
<div>
<pre id="output">
<!-- content will appear here -->
</pre>
</div>
</body>
</html>
Le chrome de la console affiche "Non" Access-Control-Allow-Origin' en-tête est présent sur la ressource demandée. Origine 'null' est donc pas autorisé à accéder." dans le long avec de statut 401.
Me demandais si je suis absent avec le code?
Merci
Vous devez vous connecter pour publier un commentaire.
Il semble que vous êtes en envoyant une demande à cette API REST lien à partir de certains fichier HTML qui n'est pas sur le même domaine. Car il n'y a pas de "Access-Control-Allow-Origin" en-tête sur ce lien et vous envoyez une demande à partir d'un domaine différent, pour des raisons de sécurité, vous n'obtiendrez pas une réponse cohérente de lui, mais au lieu obtiendrez cette erreur et une erreur 401, puisque vous êtes non autorisé à consulter le contenu de ce lien.
Il n'y a malheureusement pas moyen de contourner cela; que lien n'est tout simplement pas censé être demandée à partir de l'extérieur de domaines.