2012-05-08 14 views
38

Po wysłaniu żądania posta AJAX i wysłaniu parametrów w queryString w metodzie send(),Jaka jest różnica między danymi formularza i ładunkiem żądania?

Narzędzie do przechwytywania XHR narzędzia deweloperskiego przeglądarki Chrome wyświetla parametry w żądaniu ładunku. i kiedy używam funkcji posta jquery, Narzędzie pokazuje parametry w sekcji Dane formularza.

Jaka jest różnica?

+1

Dla przyszłych czytelników, postępuj w ten sposób: http://stackoverflow.com/questions/9597052/how-to-retrieve-request-payload –

Odpowiedz

27

nie dostarczyły wystarczających informacji, w jaki sposób korzystać z funkcji wysyłania, ale zakładam, że nie ustawić typ mime określić wysyłania danych formularza

xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 

dane wysyłane są w tym przypadku zakodowany jako kodujesz ciąg zapytania

w przeciwnym razie nie zostaną zinterpretowane jako dane formularza przez Narzędzia programisty.

jquery wykonuje większość pracy w tym zakresie.

Aktualizacja: Aby odpowiedzieć jednoznacznie, jaka jest różnica ...

  • jeżeli wniosek (zwykle POST) ma Content-type nagłówek ustawiony application/x-www-form-urlencoded oczekuje się, że ciało będzie w formie standardu querystring z zakodowaną liczbą znaków z kluczem=wartości par połączonych przez &. Sekcja danych formularza wyświetla parametry klucz-wartość (podczas przeglądania analizowane). Ten sposób był znacznie bardziej powszechny w przeszłości, ponieważ jest domyślny dla formularzy HTML.

  • inne przypadki są wyświetlane w sekcji Request payload (i obecnie analizowane pod kątem czytelności dla popularnych formatów, takich jak JSON).

+1

Użytkownicy powinni pamiętać, że 'xhr.setRequestHeader()' połączenia powinny być umieszczone * pomiędzy * wywołaniem 'xhr.open()' i wywołaniem 'xhr.send()'. W przeciwnym razie pojawi się błąd wyjątku DOM. – Martin

+8

Nie odpowiada na pytanie "Jaka jest różnica między danymi formularza i ładunkiem żądania?", Po prostu mówi, jak uzyskać jedną lub drugą. – Medorator

Powiązane problemy