v0.2 Recess quadro: JSON Richiesta non inserisce i valori
-
25-10-2019 - |
Domanda
Sto affrontando problemi durante la pubblicazione JSON DATA per quadro recesso. I dati JSON inviato perfetto a partire dalla fine del browser. Ma quando ottengo che dalla fine del server diventa nullo. Non so il motivo.
smple EXT JS codice:
Ext.Ajax.request({
url : 'http://localhost:8888/index.php' ,
method: 'POST',
jsonData: { dining: {name: 'test',},},
success: function ( result, request ) {
alert(result.responseText);
},
});
posso ottenere i dati JSON quando sto usando core di PHP. Ma il problema è stato quando im con RECESSO QUADRO.
Soluzione
Finalmente ho trovato la risposta dopo la profonda googling. Grazie a Hirnhamster l'utente, http://forums.recessframework.org/ .
Soluzione
La soluzione è - al contrario di trovare il vero problema - piuttosto facile:
1. Fase:
Aprire il file DefaultPolicy.class.php nel recesso / recesso / quadro. Passare al metodo pre-elaborazione (..). Aggiungere la riga $ this-> reparameterizeForFormat ($ richiesta); come ultimo comando prima di ritornare. La funzione dovrebbe apparire così:
<?php
public function preprocess(Request &$request) {
$this->getHttpMethodFromPost($request);
$this->forceFormatFromResourceString($request);
$this->reparameterizeForFormat($request);
return $request;
}
?>
2. Fase
Nello stesso file, passare al metodo forceFormatFromResourceString (...). Cambiare il formato della linea $ = substr ($ lastPart, $ lastDotPosition + 1); a $ format = strtolower (substr ($ lastPart, $ lastDotPosition + 1)); Aggiungere la riga $ request-> format = $ formato; qui sotto se ($ formato! == '') { La funzione dovrebbe apparire così:
<?php
protected function forceFormatFromResourceString(Request &$request) {
$lastPartIndex = count($request->resourceParts) - 1;
if($lastPartIndex < 0) return $request;
$lastPart = $request->resourceParts[$lastPartIndex];
$lastDotPosition = strrpos($lastPart, Library::dotSeparator);
if($lastDotPosition !== false) {
$format = strtolower(substr($lastPart, $lastDotPosition + 1));
if($format !== '') {
$request->format = $format;
$mime = MimeTypes::preferredMimeTypeFor($format);
if($mime !== false) {
$request->accepts->forceFormat($format);
$request->setResource(substr($request->resource, 0, strrpos($request->resource, Library::dotSeparator)));
}
}
}
return $request;
}
?>
3. Fase
Nello stesso file, passare al metodo reparameterizeForFormat (...). (Stupirsi che questa funzione esiste già: P). Cambia formato JSON :: a "JSON" e formato XML per :: "xml" La funzione dovrebbe apparire così:
<?php
protected function reparameterizeForFormat(Request &$request) {
if($request->format == "json") {
$method = strtolower($request->method);
$request->$method = json_decode($request->input, true);
} else if ($request->format == "xml") {
// TODO: XML reparameterization in request transformer
}
return $request;
}
?>
4. Fase
Si è fatto.
Per dettagliata Soluzione :
Altri suggerimenti
Prova:
Ext.Ajax.request({
url : 'http://localhost:8888/index.php' ,
method: 'POST',
jsonData: { dining: {name: 'test'} },
success: function( result, request ) {
alert(result.responseText);
}
});
Stai scrivendo Javascript. Alcuni "virgole", dopo} non sono validi.