Otrzymuję komunikat "nie jest dobrze sformułowany" w konsoli błędów Firefoksa 3.0.7, gdy JavaScript na mojej stronie ładuje plik tekstowy zawierający obiekt w formacie JavaScript Object Notation. Jeśli plik zawiera tylko obiekt JSON, generuje błąd. Jeśli zawijam obiekt w tagach <dokument> </document > to nie spowoduje to błędu. Żądanie powiodło się w każdy sposób, więc mogłem go zignorować, ale nie chcę, aby mój dziennik błędów zapełniał się tymi wiadomościami.Błąd "źle sformułowany" w Firefoksie podczas ładowania pliku JSON za pomocą XMLHttpRequest
Oto przykładowy kod ilustrujący problem. Po pierwsze, „nie jest dobrze uformowane” plik o nazwie „data.json”:
{ a: 3 }
Teraz trochę kodu do załadowania pliku:
która produkuje następujący błąd w konsoli błędów Firefox:
nie jest dobrze uformowane
plik: Linia //path/to/data.json 1
{a: 3}
-^
Jeśli data.json jest modyfikowany do tego:
<document>{ a: 3 }</document>
nie ma błędu. Zakładam, że narzeka, ponieważ zwykły plik JSON nie jest dobrze sformatowanym dokumentem XML, więc próbowałem przesłonić typ MIME przed wywołaniem "wyślij", aby wymusić załadowanie go jako zwykły tekst, ale to nie zadziałało.
var req = new XMLHttpRequest();
req.open("GET", "data.json");
req.overrideMimeType("text/plain");
req.send(null);
// Still produces an error!
mam zamiar kontynuować owijanie moich danych JSON w dokumencie XML, aby ominąć niezależnie od poprawności XMLHttpRequest wykonuje, ale chciałbym wiedzieć, czy istnieje jakiś sposób mogę zmusić go po prostu załadować zwykły tekst bezkrytycznie i nie próbuj go potwierdzać. Czy istnieje inny sposób ładowania danych poza XMLHttpRequest, który może być użyty z czystym tekstem?
To działa, dziękuję! –
Aby być dokładniejszym: req.overrideMimeType ("application/json"); req.send (null); działa. Określenie typu MIME na serwerze byłoby lepszym rozwiązaniem, ale nadpisywanie również działa. –
To jest świetne! Mi to pasuje. Dzięki! – shaosh