アプリケーションに Ext.Direct を実装する際に問題があります。ドキュメントのチュートリアルに従いましたが、機能しませんでした。
それに関する問題は、それが常に返されることです。Invalid request
それに対する私のすべての呼び出しで、どちらも設定されていないことを示唆してい$HTTP_RAW_POST_DATA
ます$_POST['extAction']
。
ルーター.php
...
if(isset($HTTP_RAW_POST_DATA)) {
header('Content-Type: text/javascript');
$data = json_decode($HTTP_RAW_POST_DATA);
} else if (isset($_POST['extAction'])) { // form post
$isForm = true;
$isUpload = $_POST['extUpload'] == 'true';
$data = new Action();
$data->action = $_POST['extAction'];
$data->method = $_POST['extMethod'];
$data->tid = isset($_POST['extTID']) ? $_POST['extTID'] : null; // not set for upload
$data->data = array($_POST, $_FILES);
} else {
die('Invalid request.');
}
...
POST 値は次のとおりです。
{
"action": "viewResourceParticulars",
"method": "getResults",
"data": [
{
"page": 1,
"start": 0,
"limit": 25,
"group": [
{
"property": "groupField",
"direction": "ASC"
}
],
"sort": [
{
"property": "groupField",
"direction": "ASC"
}
]
}
],
"type": "rpc",
"tid": 1
}
php.ini を確認しましたが、always_populate_raw_post_data
オプションは ですがtrue
、まだ機能しません。そのため、現時点ではアイデアがありません。
どんな助けでも感謝します。
編集 (2013-02-12 12:44):
Ext.Direct の呼び出しに使用されるコード:
index.php
$cs->registerScriptFile($baseUrl.'/js/direct/api.php');
api.php リターン
Ext.ns("Ext.app"); Ext.app.REMOTING_API = {"url":"js\/direct\/router.php","type":"remoting","actions":{"viewResourceParticulars":[{"name":"getResults","len":1}]}};
Ext.data.Store
...
proxy: {
type: 'direct',
directFn: viewResourceParticulars.getResults
},