jQuery.post()失败
代码从后盾网的教程中抄的,没找到不同,前端jQuery,后台是hdphp的框架,代码如下js:vardir;dir=APP+'/Reg/ajax_username';al...
代码从后盾网的教程中抄的,没找到不同,前端jQuery,后台是hdphp的框架,代码如下
js:
var dir;
dir = APP + '/Reg/ajax_username';
alert(username);
$.post(dir,{username:username},function(status){
alert("stauts");
},'json');
PHP:
<?php
class RegControl extends Control
{
//asynchronization check out the username
public function ajax_username()
{
if (!IS_AJAX) $this->error("error! Page isn't existed!");
$username = $this->_POST('username');
echo '2';
if (M('user')->where(array('username' => $username ))->getField('uid'))
{
echo 0;
}
else
{
echo 1;
}
}
}
路径没有问题,但是所有的echo都返回不到前端,前端的alert(status)不执行。 展开
js:
var dir;
dir = APP + '/Reg/ajax_username';
alert(username);
$.post(dir,{username:username},function(status){
alert("stauts");
},'json');
PHP:
<?php
class RegControl extends Control
{
//asynchronization check out the username
public function ajax_username()
{
if (!IS_AJAX) $this->error("error! Page isn't existed!");
$username = $this->_POST('username');
echo '2';
if (M('user')->where(array('username' => $username ))->getField('uid'))
{
echo 0;
}
else
{
echo 1;
}
}
}
路径没有问题,但是所有的echo都返回不到前端,前端的alert(status)不执行。 展开
3个回答
展开全部
1. 把你前端alert("status")改成alert(status)
2. 打开浏览器console(控制台)刷新页面,以火狐为例,POST执行后,控制台会显示POST 和你post到的URL,后面写状态,成功了就是这样 [HTTP/1.1 200 OK 1ms],200是没问题,404是你的路由有问题,500是你php有问题,要是200了还不能正常显示就是JS有问题
2. 打开浏览器console(控制台)刷新页面,以火狐为例,POST执行后,控制台会显示POST 和你post到的URL,后面写状态,成功了就是这样 [HTTP/1.1 200 OK 1ms],200是没问题,404是你的路由有问题,500是你php有问题,要是200了还不能正常显示就是JS有问题
追答
去掉,'json',这个参数声明预期的服务器响应类型,你返回的值既有string又有boolean,前端把这些值当做json读肯定读不出,去掉这个参数浏览器就会自己判断返回值的类型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你用火狐的debug看下网络的标签,看看有没有发送过去!
还有你在服务器端先用最简单的代码测试一下,数据有没有发送到服务器,和返回到浏览器中。
class RegControl extends Control
{
//asynchronization check out the username
public function ajax_username()
{
echo $_POST['username'];
}
}
如果这样的话还没有数据,那就是路径和别的问题!
追问
对不起,我是初学的,echo的数据怎么看到啊?
追答
他会返回到:
js:
var dir;
dir = APP + '/Reg/ajax_username';
alert(username);
$.post(dir,{username:username},function(status){
alert("stauts");
},'json');
中的
$.post(dir,{username:username},function(status){
“status”;你直接alert(status)就可以了,不要用引号引起来!
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
后台有没有收到请求?浏览器有没有脚本错误?慢慢调试吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询