Ich versuche, eine HTTP-Anfrage von einer Extension zu senden, in der ich den User-Agent ändern muss.Ändern von User-Agent in XMLHttpRequest von einer Chrome-Erweiterung
Mein Code sieht wie folgt aus:
function getXMLHttpRequest(method, url, extraHeaders) {
var xhr = new XMLHttpRequest();
xhr.open(method, url, true)
for (var headerKey in extraHeaders) {
xhr.setRequestHeader(headerKey, extraHeaders[headerKey]);
}
return xhr;
}
//....
getXMLHttpRequest("POST", "....", { "User-Agent": "Blahblahblah" })
Dann bekomme ich einen Fehler „Refused unsicher Header zu setzen: Useragent“
ich das ändern müssen, weil mein Backend muss eine haben spezieller User-Agent, ist das von einer Erweiterung aus möglich?
Ich versuchte WebRequest API, um die Kopfzeile vor dem Senden der Anfrage zu ändern, aber es sagt, es funktioniert nicht mit XMLHttpRequest von Erweiterungen gemacht, um Sperren zu verhindern.
@ExpertSystem Sie können den UserAgent jedoch mithilfe der webRequest-API ändern. Es ist eines der Beispiele im Dokument. http://developer.chrome.com/extensions/webRequest.html – HyLian
@ExpertSystem Ich weiß, dass es unsicher ist, aber das ist kein normales Javascript, es ist eine Browser-Erweiterung, ich kann Sockets verwenden und senden, was ich will. Warum nicht erlauben, eine beliebige HTTP-Anfrage zu senden? Cross-Origin-Anfragen sind ebenfalls verboten und können mit der richtigen Konfiguration im Manifest durchgeführt werden. – HyLian
http://www.w3.org/TR/cors/ Dieser Artikel beschreibt, wie Sie keine HTTP-Anfrage an einen Webserver stellen können, der in der Antwort für OPTIONS nicht den Zugriffssteuerungs-Zulassen-Ursprung enthält. Ich habe meinen Server nicht geändert, und ich kann XMLHttpRequests zu den Zielen machen, die diesen Header in der Antwort nicht enthalten. Wie auch immer, ich sage nicht, dass XMLHttpRequest es zulassen sollte, ich frage nach einer Möglichkeit, eine HTTP-Anfrage zu machen, die meinen eigenen User-Agent innerhalb einer Chrome-Erweiterung angibt. Es kann ein Chrom sein. * API oder was auch immer. – HyLian