Jaka jest różnica pomiędzy
request.ContentType = "application / json; charset = utf-8";
i
webRequest.ContentType = "aplikacja / x-www-form-urlencoded";
json
web-services
http-headers
Prithvi Raj Nandiwal
źródło
źródło
x-www-form-urlencoded
żądań AJAX, takich jak głosowanie itp. Odesłana odpowiedź toJSON
. Myślę, że lepiej jest mieć symetryczną parę żądanie / odpowiedź, czyli oba JSON.application/x-www-form-urlencoded
zmyliłoby serwer (w moim przypadku Elixir używający Poison) i spowodowałoby niewłaściwe parsowanie obiektu (w jakiś sposób przekształciło zagnieżdżoną tablicę obiektów na mapę zamiast listy).application/json
W tym przypadku użycie powinno być właściwym wyborem.Skąd pochodzi nazwa application / x-www-form-urlencoded ?
Jeśli wysyłasz żądanie HTTP GET , możesz użyć parametrów zapytania w następujący sposób:
http://example.com/path/to/page
? name = fretka & color = purpleZawartość pól jest kodowana jako ciąg zapytania. The
application/x-www-form- urlencoded
Nazwy pochodzą z poprzedniego parametru zapytania url ale parametry zapytań w przypadku gdy organ wniosku zamiast adresu URL.Całe dane formularza są wysyłane jako długi ciąg zapytania, który zawiera pary nazwa- wartość oddzielone znakiem &
np. pole1 = wartość1 i pole2 = wartość2
Może to być proste żądanie zwane prostym - nie uruchamiaj kontroli wstępnej
Proste żądanie musi mieć pewne właściwości. Więcej informacji można znaleźć tutaj . Jedną z nich jest to, że w nagłówku Content-Type dla prostych żądań dozwolone są tylko trzy wartości
3. Dla większości płaskich drzew param wypróbowano i przetestowano application / x-www-form-urlencoded.
axios i superagent , dwie z bardziej popularnych bibliotek npm HTTP, domyślnie współpracują z treściami JSON.
Teraz, jeśli żądanie nie jest prostym żądaniem , przeglądarka automatycznie wysyła żądanie HTTP przed pierwotnym metodą OPTIONS , aby sprawdzić, czy wysyłanie pierwotnego żądania jest bezpieczne. Jeśli wszystko jest w porządku, wyślij aktualne żądanie. Więcej informacji można znaleźć tutaj .
źródło