Asynchrone domänenübergreifende POST-Anfrage über JavaScript?

8

Ich könnte einfach ein Formular erstellen und das verwenden, um eine POST-Anfrage an eine beliebige Site zu machen. Die FORM-Methode ist nicht asynchron, ich muss wissen, wann die Seite fertig geladen ist. Ich versuchte es mit einem iframe mit einer Form im Inneren, aber keinen Erfolg.

Irgendwelche Ideen?

BEARBEITEN

leider habe ich keine Kontrolle über die Antwortdaten, es variiert von XML, JSON zu einfachen Text.

    
Luca Matteis 21.01.2009, 21:08
quelle

5 Antworten

11

Sie können das onload -Ereignis eines iframe erfassen. Richte deine form auf den iframe und höre auf den Onload. Sie können jedoch nicht auf den Inhalt des Iframes zugreifen, nur auf das Ereignis.

Versuchen Sie etwas wie folgt:

%Vor%

Skriptblock:

%Vor%     
Diodeus - James MacFarlane 21.01.2009, 21:21
quelle
2

Wenn Sie domänenübergreifende Anfragen stellen möchten, sollten Sie entweder einen JSON-Aufruf durchführen oder einen serverseitigen Proxy verwenden. Ein serverseitiger Proxy ist einfach einzurichten, nicht sicher, warum die Leute ihn so sehr meiden. Richten Sie Regeln darin ein, damit Benutzer den Proxy nicht verwenden können, um andere Dinge anzufordern.

    
epascarello 22.01.2009 16:10
quelle
1

Wenn die vom domänenübergreifenden Post zurückgegebenen Daten JSON sind, können Sie dynamisch ein Skript-Tag hinzufügen, das auf den URI verweist, der die Daten zurückgibt. Der Browser lädt das "Skript", auf das Sie dann von anderem Javascript zugreifen können.

    
pdx mobilist 21.01.2009 21:12
quelle
0

YUI3 ist IO -Objekt bietet domänenübergreifende Anfragen, allerdings mit einem kleinen Flash-Steuerelement, das auf der Seite eingebettet ist.

Während die Arbeit an sicheren domainübergreifenden Anfragen von JavaScript noch nicht abgeschlossen ist, müssen Sie zu diesem Zeitpunkt ein Plugin wie Flash oder Silverlight als Brücke verwenden, um die Anfrage zu stellen.

    
foxxtrot 21.01.2009 21:25
quelle
-7

Sie können mit JavaScript keine Cross-Domain-Aktivitäten durchführen. Sie müssten eine Backend-Sprache wie PHP oder asp oder etwas verwenden.

    
Pim Jager 21.01.2009 21:14
quelle

Tags und Links