Guten Morgen,
ich schon wieder...
Ich versuche einen AJAX Request mit einem Javascript Objekt abzusenden und dann in meinem PHP Backend entgegenzunehmen und entsprechend zu verarbeiten.
Dafür nutze ich folgendes Szenario:
index.volt (template engine, javascript ist dort mit entsprechenden Skript Tags enthalten.
ajaxWrapper.js
IndexController.php
Statt des erwarteten Javascript Objektes ({x: this.x, y: this.y}) ist mein $_POST Array aber leider leer.
Der Rest an der Sache funktioniert einwandfrei, wenn ich Testweise statt $_POST als Antwort zurückzugeben einen beliebigen String verwende, wird mir in meiner Konsolenausgabe (console.log) erfolgreich der entsprechende String ausgegeben.
Hat hier jemand eine Idee wo es hakt?
Angemerkt sei noch in der ajaxWrapper.js hab ich auch schon den Content-type des Request Headers auf "application/json" gehabt, das hat an der Situation nichts geändert.
Beste Grüße
ChromOxid
ich schon wieder...
Ich versuche einen AJAX Request mit einem Javascript Objekt abzusenden und dann in meinem PHP Backend entgegenzunehmen und entsprechend zu verarbeiten.
Dafür nutze ich folgendes Szenario:
index.volt (template engine, javascript ist dort mit entsprechenden Skript Tags enthalten.
Code:
... function onDragEnd() { this.alpha = 1; this.dragging = false; // set the interaction data to null this.data = null; ajaxWrapperPOST('/index/create', log, {x: this.x, y: this.y}); }
Code:
function ajaxWrapperPOST(url, functionWhenReady, data) { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { functionWhenReady(JSON.parse(this.responseText)); } }; xmlhttp.open("POST", url, true); xmlhttp.setRequestHeader("Content-type", "text/plain"); xmlhttp.send(JSON.stringify(data)); } function log(input) { console.log(input); }
PHP-Code:
public function createAction()
{
$this->view->disable();
return json_encode($_POST);
}
Der Rest an der Sache funktioniert einwandfrei, wenn ich Testweise statt $_POST als Antwort zurückzugeben einen beliebigen String verwende, wird mir in meiner Konsolenausgabe (console.log) erfolgreich der entsprechende String ausgegeben.
Hat hier jemand eine Idee wo es hakt?
Angemerkt sei noch in der ajaxWrapper.js hab ich auch schon den Content-type des Request Headers auf "application/json" gehabt, das hat an der Situation nichts geändert.
Beste Grüße
ChromOxid
Kommentar