Ich habe das Tutorial wie in diesem Link angegeben befolgt . Im folgenden Code werden die Daten aus irgendeinem Grund nicht als Parameter an die URL angehängt, aber wenn ich sie direkt auf die URL setze, /?field1="hello"
funktioniert dies.
$.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");
}
});
Antworten:
Ich würde Ihnen empfehlen, die
$.post
oder die$.get
Syntax von jQuery für einfache Fälle zu verwenden:Wenn Sie die Fehlerfälle abfangen müssen, gehen Sie wie folgt vor:
Wenn Sie immer eine JSON-Zeichenfolge senden, können Sie außerdem $ .getJSON oder $ .post mit einem weiteren Parameter ganz am Ende verwenden.
quelle
field1:
und was ist"hello"
? Variablen in JS oder PHP?Versuchen Sie es mit der GET-Methode.
Mit der POST-Methode können keine Parameter in der URL angezeigt werden.
Bearbeiten:
quelle
Jquery.ajax codiert POST-Daten für Sie nicht automatisch wie für GET-Daten. Jquery erwartet, dass Ihre Daten vorformatiert sind, um an den Anforderungshauptteil angehängt zu werden und direkt über die Leitung gesendet zu werden.
Eine Lösung besteht darin, die Funktion jQuery.param zu verwenden, um eine Abfragezeichenfolge zu erstellen, die die meisten Skripts, die POST-Anforderungen verarbeiten, erwarten.
In diesem Fall
param
formatiert die Methode die Daten wie folgt:In der Dokumentation zu Jquery.ajax heißt es, dass ein Flag mit dem Namen
processData
steuert, ob diese Codierung automatisch erfolgt oder nicht. In der Dokumentation wird standardmäßig angegebentrue
, aber dies ist nicht das Verhalten, das ich beiPOST
Verwendung beobachte.quelle
quelle
Bei einer POST-Anforderung werden die Parameter im Hauptteil der Anforderung gesendet. Deshalb werden sie in der URL nicht angezeigt.
Wenn Sie sie sehen möchten, ändern Sie
zu
Beachten Sie, dass Browser über Entwicklungstools verfügen, mit denen Sie die vollständigen Anforderungen anzeigen können, die Ihr Code ausgibt. In Chrome befindet es sich im Bereich "Netzwerk".
quelle
type: 'POST'
Wird ** Parameter angehängt an den Körper des Antrags ** , die sich gesehen nicht in der URL , während dietype: 'GET'
Parameter an die URL anhängt , die ist sichtbar .Die meisten gängigen Webbrowser enthalten Netzwerkfenster, in denen die vollständige Anforderung angezeigt wird .
Wählen Sie im Netzwerkfenster XHR aus , um Anforderungen anzuzeigen .
Dies kann auch über dies erfolgen.
quelle
Sie können dies mit $ .ajax oder $ .post tun
Verwenden von $ .ajax:
Verwenden von $ .post:
quelle
Ihr Code war richtig, außer dass Sie die JSON-Schlüssel nicht als Zeichenfolgen übergeben.
Es sollte doppelte oder einfache Anführungszeichen enthalten
quelle
Zum Senden von Parametern in der URL in
POST
Methode Sie können sie einfach wie folgt an die URL anhängen:quelle