web-dev-qa-db-fra.com

javascript set header Access-Control-Allow-Origin

Je teste JS avec POST. Mais je n'ai pas réussi avec ça.

En utilisant le code:

<!DOCTYPE html>
<html>
<body>

<div>
testing js...
</div>

<script>
function upload() {
    var method = "POST";
    var url = "http://127.0.0.1:9000/Push";

    var xhr = new XMLHttpRequest();

    xhr.open(method, url);

    xhr.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
    xhr.setRequestHeader("Access-Control-Allow-Origin", "*");

    var text = {"command":"Push"};
    xhr.send(text);

}         
upload();
</script>

</body>
</html>

J'obtiens l'erreur suivante:

entrez la description de l'image ici

L'étrange est que l'en-tête de demande n'est pas correctement défini via la ligne:

xhr.setRequestHeader("Access-Control-Allow-Origin", "*");

L'en-tête de demande est comme ceci:

entrez la description de l'image ici

4
Fczanardo

Regardez la réponse XHR: Access-Control-Allow-Origin IS présent, Origin est nul car vous l'exécutez à partir de votre système local, téléchargez-le sur un serveur pour voir Origin rempli.

function upload() {
    var method = "POST";
    var url = "http://127.0.0.1:9000/Push";

    var xhr = new XMLHttpRequest();

    xhr.open(method, url);

    xhr.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
    xhr.setRequestHeader("Access-Control-Allow-Origin", "*");

    var text = {"command":"Push"};
    xhr.send(text);

}

$(document).ready(function(){
$('.upload').click(upload);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button class="upload">Upload</button>
2
Mosè Raguzzini