Ajax-request: Weigerte sich, unsicher header
Ich versuche zu wiedergeben einer audio mithilfe von Google Text-To-Speech. Deshalb muss ich die post eine Anfrage an Ihren Endpunkt mit dem Referer und User-Agent richtig eingestellt ist. Dieser Aufruf sollte zurückkehren, MP3, die ich spielen kann.
Allerdings bekomme ich "Weigerte sich, unsicher-header" Fehler. Das ist mein code. Wie kann ich es tun?
$.ajax({
url: 'http://translate.google.com/translate_tts?ie=UTF-8&q=Hello&tl=en&client=t',
beforeSend: function(xhr) {
xhr.setRequestHeader("Referer", "http://translate.google.com/");
xhr.setRequestHeader("User-Agent", "stagefright/1.2 (Linux;Android 5.0)");
}, success: function(data){
el.mp3 = new Audio(data);
el.mp3.play();
}
});
- Mögliche Duplikate von Header Hinzufügen, die in AJAX-Request mit jQuery
- Egal, was für eine Kopfzeile festlegen, die Google translate-Endpunkt nicht unterstützt CORS
- Locken es funktioniert...
- Für LOCKE sind Sie, dass die Anfrage sich selbst, Sie sind nicht gefragt, browser Ihres Besuchers zu leise im hintergrund auf Ihrem Namen. Es gibt viele zusätzliche Sicherheits-Einschränkungen, wenn Sie versuchen, anderen Menschen das Browser Dinge tun.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht. Es ist unmöglich.
Den Spezifikation erfordert, dass der browser bricht die
setRequestHeader
Methode, wenn Sie versuchen, diese Kopfzeilen.Wenn Sie diese Header dann werden Sie brauchen, um die Anfrage von deinem server und nicht der browser Ihres Besuchers.
(Das heißt, wenn Sie brauchen, um zu täuschen über den user-agent oder referer dann versuchen Sie wahrscheinlich, um den service zu nutzen in einer Weise, dass der Eigentümer es nicht möchten, so sollten Sie das respektieren und aufhören zu versuchen).
Überprüfen Sie auch die "Fetch-verboten-header-Namen".
Können Sie nicht. Es ist unmöglich.
Die Spezifikation erfordert, dass der browser bricht die
setRequestHeader
Methode, wenn Sie versuchen, die standard-request-Header.Stattdessen können Sie festlegen, benutzerdefinierte header, Ihren Wunsch zu erfüllen .