2011-10-13 10 views
5

Chcę wysłać formularz z JSONP czy istnieje jakieś możliwe rozwiązanie?Napisz formularz z JSONP

Chcę wysłać formularz do innej domeny niż jsonp.

+0

Pokaż nam jakiś kod, proszę! Jak ktoś ma tak odpowiedzieć? – vzwick

+0

Możesz wysyłać żądania GET tylko za pomocą JSONP. – andlrc

+0

@vzwick dzięki za szybką odpowiedź. scenariusz jest mam formularz na moim serwerze, ale chcę postu formularza do innego serwera poprzez ajax, ale ajax nie pozwala na to, więc znalazłem jsonp pomaga wysyłać dane do diff. serwer działa z metodą GET, ale chcę metodę POST, która nie działa z jsonp. dowolny pomysł? –

Odpowiedz

4

Nie można utworzyć POST z POK z JSONP.

Jednak można:

  1. Serializować formularz w ciągu zapytania i wysłać go wraz z żądania GET.
  2. Użyj CORS(Cross Origin Resource Sharing), jeśli masz luksus, że możesz kierować reklamy tylko na nowoczesne przeglądarki.
  3. prośba
2

JSONP jest właśnie stworzenie tag skryptu z wywołanie funkcji:

javascript:

var head = document.getElementsByTagName("head")[0]; 
var script = document.createElement('script'); 
script.type = 'text/javascript'; 
script src = 'url_to_post.serverside?callback=callback_function'; 

var callback_function(response) { 
    head.removeChild(script); 
    alert(response.abc); // returns def; 
}; 

url_to_post.serverside:

callback_function({"abc": "def"}); 

nadzieję, że widać to dlaczego działa tylko w przypadku żądań GET

:)

2

że można używać w opcji dane swojej .post $, $ .get, $ .ajax metoda:

$('form').serialize()