Ich suche nach verwandten Themen in jQuery. Aber ich habe keine Methode gesehen, um mein Problem zu lösen.
%Vor%Hier gibt es vier Probleme:
Kann mir jemand helfen, dieses Problem zu lösen? Ich war einen Tag lang hier drin. Vielen Dank.
Ein paar Probleme dort:
getJSON
führt eine Ajax-Anfrage durch. Ajax-Anfragen unterliegen der Richtlinie für gleiche Herkunft . Solange Ihre Seite nicht von http://test.com
geladen wurde (oder ein paar andere Vorbehalte), wird es nicht funktionieren. Du suchst wahrscheinlich nach JSON-P (welches jQuery auch unterstützt), vorausgesetzt der Server unterstützt es.
getJSON
ist wie alle ajax-Anfragen standardmäßig asynchron , sodass Ihre zweite Warnung (mit der Benutzerliste) vor erfolgt, wenn die Anfrage abgeschlossen ist . Obwohl Sie Ajax-Anfragen synchron machen können, ist dies eine sehr schlechte Idee (blockiert die Benutzeroberfläche der meisten Browser während der Anfrage). Verwenden Sie stattdessen die Benutzerliste, nachdem Sie sie im Rückruf erhalten haben, anstatt zu versuchen, sie in der Funktion getJSON
aufrufen zu verwenden.
Bearbeiten : Sie haben unten gesagt, dass Sie versuchen, die Twitter-Such-API zu verwenden. Diese API unterstützt JSON-P. Wenn Sie also JSON-P für Ihre Anfrage verwenden, sollte es funktionieren. z.B.:
%Vor%... aber das wollen Sie sicher nicht für jedes Textfeld im Formular tun?
Hier ist ein Live-Beispiel , aber ohne Formular (und nur eine Anfrage, keine Anfrage für jedes Feld).
Verwenden Sie die MVC-Plattform? Offensichtlich blockiert MVC 2.0 standardmäßig GET-Anfragen an Aktionen, die ein JsonResult zurückgeben. Check out:
Ich hatte das gleiche Problem beim Upgrade einer bestehenden Anwendung (geschrieben in MVC v1), die .getJSON-Aufrufe verwendet, um Daten von MVC Controller zu View (via jquery / javascript) & amp; Ich konnte nicht herausfinden, warum sie nicht gearbeitet haben. Ich habe verschiedene Versionen von jQuery ohne Glück ausprobiert, dann habe ich den obigen Link gefunden. Ich wechselte stattdessen zu POST (und änderte auch leicht, wie die Daten vom Controller gesendet wurden - benutztes Wörterbuch) und ließ es arbeiten - schließlich !!
Viel Glück! JayD
Ich möchte einen weiteren Grund hinzufügen, warum jQuery.getJSON () in einer Entwicklungsumgebung unter IIS für Windows möglicherweise nicht wie erwartet reagiert.
Nach allen hier beschriebenen Prozeduren konnte ich keine Daten aus einer * .json Datei erhalten, nur wenn ich die Erweiterung in * .js änderte, der Antwortstatus wurde zurückgegeben
%Vor%Dann habe ich mich daran erinnert, dass es bei IIS einige MIME / Typen gibt, die nicht spezifiziert sind. Das Hinzufügen von MIME / Typ application / json für Dateien mit der Erweiterung .json hat mein Problem gelöst.