我有一個內聯編輯器,它使用AJAX函數保存內容。這個函數調用我的Yii控制器來保存數據。這一切工作正常。Yii Ajax保存在URL重寫後給出響應301
現在我使用.htaccess
和Yii urlManager縮短了我的網址。當我調用控制器保存來自我的AJAX函數的數據時,我得到了301響應。如果我將所請求的URL複製到我的瀏覽器中,則一切正常。有誰知道我的帖子爲什麼不能到達控制器?
AJAX功能:
$.post("../inhoud/opslaan/id/" + id, {
dataType: "json",
data : editor.getData(),
success : alert('Opgeslagen!'),
});
此網址應該工作以及我猜,但給出了同樣的答覆
"../index.php?r=inhoud/opslaan&id=" + id
的.htaccess:
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
urlManager:
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName' => false,
'rules'=>array(
'about' => 'site/page/view/about/',
'edit' => 'paginaitems/index/',
// default controller url setup
'<controller:w+>/<id:d+>'=>'<controller>/view',
'<controller:w+>/<action:w+>/<id:d+>'=>'<controller>/<action>',
'<controller:w+>/<action:w+>'=>'<controller>/<action>',
)
),
控制器動作:
public function filters()
{
return array(
'accessControl', // perform access control for CRUD operations
'postOnly + delete', // we only allow deletion via POST request
);
}
array('allow',
'actions'=>array('create','update','opslaan'),
'users'=>array('@'),
),
public function actionOpslaan($id)
{
$model=$this->loadModel($id);
$model->content = $_POST['data'];
$model->save();
}
請求的URL是如下:http://本地主機/網站/ inhoud/opslaan/id/9 事情是,當我將這個URL複製到我的瀏覽器時,我可以正常訪問頁面。剛剛測試和絕對路徑也給了301 – Daniel 2014-10-30 12:51:51
請將您的控制器的「規則」,「過濾器」和「accessRules」添加到您的示例中。 – lin 2014-10-30 12:55:50
添加訪問規則。用戶已登錄.. – Daniel 2014-10-30 12:58:44