Ajax请求不成功

墨题斋 2014-11-16 08:16:40
页面请求的js代码如下:

$.ajax({
url: "__URL__/userAdd",
dataType: "json",
type: "POST",
cache: false,
async:true,
success: function(data){
alert(456);
}
});


后台是使用php语言写的,接收的类是使用TP框架的控制器,代码如下:(我觉得跟接收类的代码没有关系)

public function userMg(){
$this->assign('userpage', $this->sys->getUserMsg());
if(IS_AJAX){
$ret['status'] = '1';
$ret['content'] = 'content';
$this->ajaxReturn($ret,'json');
}else{
$this->display();
}
}


使用这代码请求的结果如下,请注意圈中的类型与referer


我修改请求头部的referer后成功请求到控制类,请注意圈中的类型与referer,如下


在原来的请求中,页面http://localhost/spt/index.php/Home/System/userMg的页面meta如下

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


为什么我定义了Content-Type是text/html后,firebug检测出来的类型是plain,更改referer后是json,并能够成功请求。
...全文
386 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
墨题斋 2014-11-18
  • 打赏
  • 举报
回复
问题已解决,触发ajax事件的,不能够是标签a,否则就会造成这种情况
墨题斋 2014-11-17
  • 打赏
  • 举报
回复
引用 7 楼 wz_307 的回复:
.. dataType是指定从服务器接收的格式依照什么来解析 contentType是指, 向服务器发送的数据格式 LZ是不是搞反了
是的,主要我不清楚firebug里面的那个类型是指什么类型,我调整了referer之后,那个类型就变成json了 另外contentType我也限定过为text/html,也是没有效果的
wz_307 2014-11-17
  • 打赏
  • 举报
回复
.. dataType是指定从服务器接收的格式依照什么来解析 contentType是指, 向服务器发送的数据格式 LZ是不是搞反了
墨题斋 2014-11-17
  • 打赏
  • 举报
回复
引用 5 楼 showbo 的回复:
php就不懂了。。。ajax得到的结果和浏览器请求后查看源代码的一样·~
我直接将请求的地址放在浏览器访问,是能够返回结果的,但是用ajax请求的话,就出现上面的情况,我还是认为与后台处理的无关
Go 旅城通票 2014-11-17
  • 打赏
  • 举报
回复
php就不懂了。。。ajax得到的结果和浏览器请求后查看源代码的一样·~
墨题斋 2014-11-17
  • 打赏
  • 举报
回复
引用 3 楼 showbo 的回复:
if(IS_AJAX){ $ret['status'] = '1'; $ret['content'] = 'content'; $this->ajaxReturn($ret,'json'); }else{ $this->display(); } 看红色那个变量怎么赋值的,应该是判断了来源。。是ajax请求就输出json数据,否则直接显示html代码什么的
与这个无关呢,我换一个控制器,直接使用下面那段代码,结果还是一样 $ret['status'] = '1'; $ret['content'] = 'content'; $this->ajaxReturn($ret,'json');
Go 旅城通票 2014-11-17
  • 打赏
  • 举报
回复
if(IS_AJAX){ $ret['status'] = '1'; $ret['content'] = 'content'; $this->ajaxReturn($ret,'json'); }else{ $this->display(); } 看红色那个变量怎么赋值的,应该是判断了来源。。是ajax请求就输出json数据,否则直接显示html代码什么的
墨题斋 2014-11-17
  • 打赏
  • 举报
回复
肿么没有一个人鸟我啊。。。
墨题斋 2014-11-17
  • 打赏
  • 举报
回复
难道我的问题就那么不受人一屑么
墨题斋 2014-11-16
  • 打赏
  • 举报
回复
不要沉啊

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧