Postępowałem zgodnie z samouczkiem, jak podano w tym linku. W poniższym kodzie z jakiegoś powodu dane nie są dołączane do adresu URL jako parametry, ale jeśli ustawię je bezpośrednio na adres URL, /?field1="hello"
to działa.
$.ajax({
url: 'superman',
type: 'POST',
data: { field1: "hello", field2 : "hello2"} ,
contentType: 'application/json; charset=utf-8',
success: function (response) {
alert(response.status);
},
error: function () {
alert("error");
}
});
Odpowiedzi:
Polecam do skorzystania z
$.post
lub$.get
składni jQuery dla prostych przypadkach:Jeśli chcesz wychwycić przypadki niepowodzeń, po prostu zrób to:
Dodatkowo, jeśli zawsze wysyłasz ciąg JSON, możesz użyć $ .getJSON lub $ .post z jeszcze jednym parametrem na samym końcu.
źródło
field1:
i co to jest"hello"
? Zmienne w JS czy PHP?Spróbuj użyć metody GET,
Nie możesz zobaczyć parametrów w adresie URL z metodą POST.
Edytować:
źródło
Jquery.ajax nie koduje danych POST automatycznie, tak jak w przypadku danych GET. Jquery oczekuje, że Twoje dane zostaną wstępnie sformatowane, aby dołączyć do treści żądania, aby zostały wysłane bezpośrednio przez sieć.
Rozwiązaniem jest użycie funkcji jQuery.param do zbudowania ciągu zapytania, którego oczekuje większość skryptów przetwarzających żądania POST.
W tym przypadku
param
metoda formatuje dane w celu:Dokumentacja Jquery.ajax mówi, że istnieje flaga o nazwie,
processData
która kontroluje, czy to kodowanie jest wykonywane automatycznie, czy nie. Dokumentacja mówi, że jest to ustawienie domyślnetrue
, ale nie jest to zachowanie, które obserwuję, gdyPOST
jest używane.źródło
źródło
W żądaniu POST parametry są wysyłane w treści żądania, dlatego nie widać ich w adresie URL.
Jeśli chcesz je zobaczyć, zmień
do
Zwróć uwagę, że przeglądarki mają narzędzia programistyczne, które pozwalają zobaczyć pełne żądania wysyłane przez Twój kod. W przeglądarce Chrome znajduje się w panelu „Sieć”.
źródło
type: 'POST'
, doda ** parametry do treści żądania **, które nie jest widoczne w adresie URL, natomiasttype: 'GET'
dołączy parametry do adresu URL, który jest widoczny .Większość popularnych przeglądarek internetowych zawiera panele sieciowe, które wyświetlają całe zapytanie .
W panelu sieci wybierz XHR, aby zobaczyć żądania .
Można to również zrobić za pomocą tego.
źródło
Możesz to zrobić za pomocą $ .ajax lub $ .post
Używając $ .ajax:
Korzystanie z $ .post:
źródło
Twój kod był poprawny, ale nie przekazujesz kluczy JSON jako ciągów.
Powinien zawierać podwójne lub pojedyncze cudzysłowy
źródło
Aby wysłać parametry w adresie URL w
POST
metodzie, możesz po prostu dołączyć je do adresu URL w następujący sposób:źródło