Extension Chrome: comment changer l'origine en en-tête de requête AJAX?
Je suis en train de configurer manuellement une origine dans une requête ajax en-tête. Dans mon background.js, j'ai cette
var ajaxResponse;
$.ajax({
type:'POST',
url:'www.somewebsite.com/login/login.asp',
headers:{
'origin': 'https://www.somewebsite.com'
},
success: function(response){
ajaxResponse = response;
}
});
Comme vous pouvez le voir, l'origine est modifié. Mais lorsque cette extension Chrome exécuté, l'origine obtient le remplacement chrome-extension://iphajdjhoofhlpldiilkujgommcolacc
et la console donne une erreur " Refusé de jeu dangereux d'en-tête de "l'origine"'
J'ai suivi Chrome API (http://developer.chrome.com/extensions/xhr.html), et déjà l'autorisation comme suit
"permissions": [
"https://www.somewebsite.com/*"
],
Personne ne sait comment configurer correctement l'origine en en-tête? Merci!
Vous ne pouvez pas. Pourquoi essayez-vous de changer l'origine?
nous devrions être en mesure de. Dans google Chrome, l'Extension de l'API, il dit " Régulier pages web peuvent utiliser l'objet XMLHttpRequest pour envoyer et recevoir des données à partir des serveurs distants, mais ils sont limités par la même la politique de l'origine. Les Extensions ne sont pas limitées. Une extension peut parler à des serveurs distants à l'extérieur de son origine, aussi longtemps que il demande tout d'abord de la croix-origine des autorisations.' (developer.chrome.com/extensions/xhr.html)
C'est juste que les extensions ne sont pas limités par la croix-origine mais vous ne faites pas que la modification de l'origine. Vous venez de faire la demande XHR et Chrome de ne pas le bloquer.
nous devrions être en mesure de. Dans google Chrome, l'Extension de l'API, il dit " Régulier pages web peuvent utiliser l'objet XMLHttpRequest pour envoyer et recevoir des données à partir des serveurs distants, mais ils sont limités par la même la politique de l'origine. Les Extensions ne sont pas limitées. Une extension peut parler à des serveurs distants à l'extérieur de son origine, aussi longtemps que il demande tout d'abord de la croix-origine des autorisations.' (developer.chrome.com/extensions/xhr.html)
C'est juste que les extensions ne sont pas limités par la croix-origine mais vous ne faites pas que la modification de l'origine. Vous venez de faire la demande XHR et Chrome de ne pas le bloquer.
OriginalL'auteur Maria | 2014-01-01
Vous devez vous connecter pour publier un commentaire.
Vous avez probablement mal interprété les docs:
l'extension peut demander l'accès à des serveurs distants à l'extérieur de son origine
Cela signifie que l'extension pouvez envoyer la demande aux serveurs distants (c'est à dire le navigateur lui-même ne va pas bloquer la demande que se passerait-il avec une page web JS).
Ce n' pas dire que l'extension sera autorisé à envoyer des arbitraire en-têtes avec la demande, ni que le serveur distant répond à la demande.
Donc, si le serveur distant, nécessite une valeur spécifique pour le
Origin
en-tête, puis il n'y a rien que vous pouvez faire, puisque, selon les les spécifications vous n'êtes pas autorisé à définir laOrigin
en-tête (et cette prescription vaut aussi pour les extensions).Assurez-vous. Vous pouvez utiliser plusieurs serveur-côté libs pour atteindre ce que vous voulez (mais vous avez besoin d'un serveur (ou un service qui propose cette fonctionnalité)).
OriginalL'auteur gkalpak