CANNOT Państwo dokonać wielu domenach (GET/POST/itp) z XMLHttpRequest (alias AJAX).
Co można zrobić, gdy serwer go obsługuje, tworzy żądanie JSONP. Żądanie JSONP działa następująco:
- jQuery tworzy dostępne globalnie funkcję z funkcją wywołania zwrotnego, które udostępniasz jako argument
- Zamiast XMLHttpRequest (AJAX), aby uczynić żądanie HTTP, jQuery dynamicznie wstawia skrypt tag do DOM
- SRC znacznika script jest żądanie URL, do którego próbują komunikować
- jQuery dodaje param oddzwonienia do ciągu kwerendy tak: example.com/someurl.js?callback=someDynamicallyGeneratedMethodName
- To jest w górze do serwera, aby powrócić JavaScript że klient może korzystać przekazując wynik JSON jako argument do someDynamicallyGeneratedMethodName
Jeśli nie masz kontroli nad serwerem, który Piszesz do, to jesteś pecha, JSONP wygrał nieźle ci idzie. Cokolwiek serwer zwróci, będzie znajdować się w tagu SCRIPT i najprawdopodobniej spowoduje błąd, jeśli nie jest poprawnie sformatowany.
Aby uzyskać więcej informacji na ten temat, sugeruję, abyś spojrzał na podstawową funkcję $ .ajax zamiast skrótów. (W dokumentacji jQuery pod Ajax. Niestety nie mogę dodać więcej linków)
Jeszcze raz, jeśli nie masz kontroli nad serwerem, do którego publikujesz, możesz zajrzeć do proxy, jeśli to możliwe. W przeciwnym razie IFRAME może być jedyną inną opcją. Istnieje również metoda wykonania tego przy pomocy obiektu SWF (flash). Próbowałem również, ale są one obejście ograniczeń obiektu XMLHttpRequest.
Mam nadzieję, że mogę pomóc!
+1. Świetny post i witamy w SO! – aolde
Dzięki za wyjaśnienie. Po tym jest dużo czystsze niż godzina Googling. Mam dostęp do serwera, na który publikuję, więc wszystko jest w porządku. –
Dlaczego ten komentarz dotyczy tego tematu? Nie dotyczy POST, o które prosił specjalnie OT! – HRJ