AJAX post JSOSN Daten ankommt leer - codeigniter
Ich habe eine Menge von ähnlichen Fragen, doch niemand mit meiner Frage, aber, Das ist mein AJAX-request
data = JSON.stringify(data);
url = base_url + "index.php/home/make_order";
//alert(url);
var request = $.ajax({
url: url,
type: 'POST',
contentType: 'application/json',
data: data
});
request.done(function(response){
alert('success');
});
request.fail(function(jqXHR, textStatus, errorThrown){
alert('FAILED! ERROR: ' + errorThrown);
});
Mein problem ist, dass wenn es kommt, um die PHP-CI-controller $this->input>post ("Daten") kommt leer!!
UPDATE
Dies ist meine Daten: wie angezeigt, bevor der AJAX-request:
data = {"Summe":"2.250","info":[{"id":"6","name":"bla","price":"1.000"}]}
Bitte helfen. Vielen Dank im Voraus.
- bitte zeigen Sie uns, was Ihre
data
ist ?/
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zunächst möchte ich allen danken, Antworten.
Tatsächlich war es ein paar Fehler,
Ersten: wie @bipen sagte, müssen die Daten werden gesendet, sobald ein Objekt nicht als ein string. und wenn ich es versuchte, es hat nicht funktioniert, weil ich nicht die single-quote um Daten
Zweiten: wie @foxmulder schon sagte, contentType falsch geschrieben wurde, und sollte ContentType
also der richtige code ist:
und nur zur info, falls jemand hatte Probleme mit PHP abrufen, das ist, wie es zu tun:
contentType
Sollte nicht sein Kapital. Der Grund, warum es funktioniert hat, ist weil die HauptstadtC
Inhalte geben eine ungültige jQuery-Eigenschaft. Diesem Antrag legen Sie die header, um einen default-Wert, d.h.application/x-www-form-urlencoded; charset=UTF-8
. Sie können dies überprüfen, durch das entfernen contentType & es wird immer noch funktionieren. Sie können auch überprüfen Sie die Anforderungen in Ihrem browser & überprüfen Sie diese. Siehe docs : api.jquery.com/jQuery.ajax/senden Sie Ihre Daten als Objekt und nicht als string.. (nicht sicher, Sie haben dies bereits getan, es sei denn, wir sehen Sie Daten Wert.. wenn nicht, dann versuchen Sie es)
aktualisiert
wenn, wie von Kommentaren, die Sie Daten
dann
data:data
ist in Ordnungbt, die Sie brauchen, um Ihre codeigniter-codes
contentType sollte groß geschrieben werden (ContentType)
sehen diese Frage
contentType
Sollte nicht sein Kapital. Der Grund, warum es funktioniert hat, ist weil die HauptstadtC
Inhalte geben eine ungültige jQuery-Eigenschaft. Diesem Antrag legen Sie die header, um einen default-Wert, d.h.application/x-www-form-urlencoded; charset=UTF-8
. Sie können dies überprüfen, durch das entfernen contentType & es wird immer noch funktionieren. Sie können auch überprüfen Sie die Anforderungen in Ihrem browser & überprüfen Sie diese. Siehe docs : api.jquery.com/jQuery.ajax/Ich verlängert die CI_Input Klasse zu ermöglichen, mit json.
Legen Sie diese in application/core/MY_input.php und Sie können $this->input> - post() als gewöhnlich.
Wenn Sie PHP5.x. Ersetzen
mit
Ich bin nicht vertraut mit CodeIgniter, aber ich denke, man kann versuchen mit globalen Variablen
$_POST
:Wenn var_dump anzeigen von Daten, können
$this->input...
problem hat$this->input->post
dies ist, wie man die geposteten Daten in codeigniter..