将数据从javascript发送到控制器Yii
我试图从Yii中的控制器向动作发送一个数组,但我一直得到404。以下是我从javascript发送数据的方式:将数据从javascript发送到控制器Yii,javascript,php,yii,Javascript,Php,Yii,我试图从Yii中的控制器向动作发送一个数组,但我一直得到404。以下是我从javascript发送数据的方式: $.ajax({ url: baseUrl + '/user/validateUser', data: $('#usr').val(), type: 'post', dataType: 'json', success: function(res) { console.log(res); } }); 在我的User
$.ajax({
url: baseUrl + '/user/validateUser',
data: $('#usr').val(),
type: 'post',
dataType: 'json',
success: function(res)
{
console.log(res);
}
});
在我的UserController中,我有以下操作:
public function actionValidateUser() {
if ($_POST > 0){
$username = $_POST['username'];
var_dump($username);
}
}
我得到的回应是:
Request URL:http://localhost/myapp/user/validateUser
Request Method:POST
Status Code:404 Not Found
我做错了什么?在Zend,我这样做了,效果很好。在这里我不知道。您的ajax调用接收一个字符串作为数据,并且没有关于该字符串表示哪个字段的信息。您应该指出此数据表示的字段 请尝试以下代码:
$.ajax({
url: baseUrl + '/user/validateUser',
data: { username: $('#usr').val() },
type: 'post',
dataType: 'json',
success: function(res)
{
console.log(res);
}
});
您的原始请求正在生成对//localhost/myapp/user/validateUser?的调用?。但是上面的代码将生成对//localhost/myapp/user/validateUser?username=的调用,似乎您的apache重写规则不正确/不存在。 在
htdocs
文件夹下创建/编辑名为.htaccess
的文件。将以下内容放入其中:
Options +FollowSymLinks
IndexIgnore */*
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
保存它并重新启动apache。
确保在apaches httpd.conf中启用了
mod_rewrite
。请使用UrlManager
设置发布配置。打开http://localhost/myapp/user/validateUser
?您也可以尝试使用相对路径/user/validateUser
而不是baseUrl+'/user/validateUser'
@jonijones我意识到在我的本地机器上没有URL在工作。'urlManager'=>array('urlFormat'=>'path','showScriptName'=>false,'rules'=>array('/'/'=>'/view','/'=>'/'/'=>'/'/',),您是否在.htaccess中正确设置了重写规则?如果打开http://localhost/myapp/index.php?r=user/validateUser
是否在浏览器中?如果得到200 OK的响应,则.htaccess重写有问题。顺便说一句,如果($\u POST>0),你不应该做。如果(isset($\u POST)和&count($\u POST))
要检查现有的POST数组,最好是。@chris---hahaha,你刚才说的就是这样。但我不知道如何重写它。这也是个问题,仍然不起作用。我猜这是一个配置错误。我的任何操作都无法在本地计算机上运行,服务器上的操作都正常。抱歉,但仍然无法运行。我从myapp
编辑了本地.htaccess文件,但仍然无法工作。它看起来像你的。p、 s:我将Debian与Apache一起使用,而不是xampp。检查apache配置,确保在apaches httpd.conf的模块部分下启用了mod_rewrite。