Ich schreibe gerade eine Google Chrome-Erweiterung, und ich muss herausfinden, Informationen über Websites Antwortheader. Um dies zu tun, habe ich die getAllResponseHeaders
Methode verwendet, aber ich muss es in ein JSON-Objekt einfügen. Leider bekomme ich immer die Fehlermeldung SyntaxError: Unexpected token D in JSON at position 0 at main
.Wie mache ich ein JSON-Objekt aus getAllResponseHeaders-Methode
Hier ist der Code ich dies bisher zu tun bin mit:
xmlhttp.open("GET", url, false);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
allResponseHeaders = xmlhttp.getAllResponseHeaders();
}
};
xmlhttp.send();
var responseHeaders = JSON.parse(allResponseHeaders);
obj.headers = responseHeaders;
Wenn ich einen Alarm setzen unmittelbar nach dem allResponseHeaders = xmlhttp.getAllResponseHeaders();
Anruf, zeigt die Warnung, dass der Anruf erfolgreich war; Die Antwortheader wurden alle abgerufen. Der erste Antwort-Header ist das Datum, das ich mit dem Unexpected token D
Teil meiner Fehlermeldung zu tun habe, aber ich weiß nicht, warum es nicht richtig parsen wird. Wie behebe ich das? Danke im Voraus.
EDIT: Ich würde meine JSON-Objekt mag so etwas wie folgt aussehen:
{
"headers": {
"Date": "June 20, 2016",
"Content-Type": "charset=UTF/8",
...
}
}
JSON.parse() wird nicht funktionieren auf eine Zeichenfolge, die nicht JSON enthält ... das ist wie zu fragen, warum parseFloat() auf der Zeichenfolge funktioniert nicht „Hallo“. – nnnnnn
Gibt es trotzdem, um es in eine JSON-Zeichenfolge zu konvertieren? –
Was ist Ihr gewünschtes Ausgabeformat? Bitte [bearbeiten] Sie Ihre Frage, um ein Beispiel zu zeigen. Vielleicht möchten Sie auch 'console.log (allResponseHeaders)' sofort nach dem Zuweisen des Wertes zu dieser Variablen hinzufügen, so dass Sie sehen können, in welchem Format es ist (Ich denke, es sollte eine Überschrift pro Zeile sein, getrennt durch Wagenrücklauf). – nnnnnn