2009-05-28 1 views
0

Ich habe eine Reihe von Ajax-Anfragen, die gut funktionieren, aber am Ende habe ich einen Syntaxfehler in meinem Browser.Ajax.request löst einen Syntaxfehler aus, gibt aber den korrekten Wert zurück

Kann jemand sehen, was mit meiner Anfrage unten falsch ist?

edit: Dies scheint auch nur den Fehler zu werfen, wenn es zum ersten Mal aufgerufen wird. Wenn ich die Konsole lösche, erhalte ich keine Fehler mehr.

+0

was ist die Syntaxfehler? – mkoryak

+0

Syntaxfehler http: // localhost: 8080/servlet/ Zeile 1 – Jesse

+0

Können Sie einen Block Ihres tatsächlichen Codes anstelle des Stubs einfügen? Das kann beim Erkennen des Syntaxfehlers helfen. Ich habe früher ähnliche Situationen erlebt, in denen FF funktioniert, aber IE Syntaxfehler hervorruft. Meistens nicht, es lag an einem falschen/zusätzlichen Komma, das nach den Parametern von Ajax.Requeuest() gesetzt wurde. –

Antwort

4

Ich habe Syntaxfehler mit xmlhttprequest in Firefox bekommen, um auch Nicht-XML abzufragen. Firefox versucht, die Antwort als XML zu analysieren und protokolliert den Fehler, funktioniert aber trotzdem weiter.

In meinem Fall habe ich dies auf der Serverseite zum PHP hinzugefügt:
header ('Content-Type: text/plain');

Jemand berichtete eine clientseitige fix hier:
jQuery .getJSON Firefox 3 Syntax Error Undefined

+0

Ich habe es endlich geschafft, dies zu beheben und den Inhaltstyp in der Kopfzeile zu setzen, funktionierte! Vielen Dank. Ich habe diese Zeile meinem Servlet hinzugefügt: response.setContentType ("text/plain"); – Jesse

0

Es gibt keine Root-Eigenschaft im Fensterobjekt, entsprechend W3Schools. Vielleicht, wenn Sie

new Ajax.Request(document.domain + '/servlet/GetName', ... 

verwenden, wird es besser funktionieren.

Edit, ah - ich sollte lesen lernen. Es funktioniert, aber wirft einen Syntaxfehler. Syntaxfehler! = Keine implementierte Eigenschaft ... Sorry! Aber ich werde meine Post trotzdem bleiben lassen. ;)

+0

Es stellte sich heraus, dass window.root nichts zurückgab und implizit den 'http: // localhost: 8080' zu meiner Anfrage hinzufügte. Durch das Ändern in document.domain wurde die Anforderungs-URL geändert, so dass sie nicht mehr funktionierte. Das Festcodieren der URL machte keinen Unterschied. – Jesse

Verwandte Themen