Jaka jest różnica między "Request Payload" a "Form Data", jak widać w zakładce Chrome Dev tools Network
Mam starą aplikację internetową, którą muszę obsługiwać(której nie napisałem).
Kiedy wypełniam formularz i wysyłam, a następnie sprawdzam zakładkę "Sieć" w Chrome widzę "Request Payload", gdzie normalnie widzę "dane formularza". Jaka jest różnica między tymi dwoma i kiedy JEDEN zostanie wysłany zamiast drugiego?
Wygooglowałem to, ale tak naprawdę nie znalazłem żadnych informacji wyjaśniających to (po prostu ludzie próbują dostać aplikacje javascript wysyłać "dane formularza" zamiast " żądanie Ładowność".
2 answers
Ładunek żądania - a dokładniej: ciało ładunku żądania HTTP
- dane są zwykle wysyłane przez Post lub Put Request .
Jest to część po nagłówkach i CRLF
żądania HTTP .
Prośba z Content-Type: application/json
może wyglądać tak:
POST /some-path HTTP/1.1
Content-Type: application/json
{ "foo" : "bar", "name" : "John" }
Jeśli przesyłasz to za AJAX przeglądarka po prostu pokazuje, co przesyła jako ciało ładunku. To wszystko, co może zrobić, ponieważ nie ma pojęcia, skąd pochodzą dane.
Jeśli wyślij formularz HTML z method="POST"
i Content-Type: application/x-www-form-urlencoded
lub Content-Type: multipart/form-data
twoja prośba może wyglądać tak:
POST /some-path HTTP/1.1
Content-Type: application/x-www-form-urlencoded
foo=bar&name=John
W tym przypadku form-data jest żądaniem. Tutaj przeglądarka wie więcej: wie, że bar jest wartością pola wejściowego Foo przesłanego formularza. I to ci pokazuje.
Różnią się więc w Content-Type
, ale nie w sposobie przekazywania danych. W obu przypadkach dane znajdują się w treści wiadomości. Chrome rozróżnia sposób prezentacji danych w deweloperze Narzędzia.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:54:53
W Chrome żądanie z 'Content-Type:application/json' pokazuje jako żądanie PayedLoad i wysyła dane jako obiekt json.
Ale request z 'Content-Type: application / x-www-form-urlencoded' pokazuje dane formularza i wysyła dane jako Key: Value Pair , więc jeśli masz tablicę obiektu w jednym kluczu to wartość tego klucza:
{ Id: 1,
name:'john',
phones:[{title:'home',number:111111,...},
{title:'office',number:22222,...}]
}
Wysyła
{ Id: 1,
name:'john',
phones:[object object]
phones:[object object]
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-04 05:02:36