Jquery ajax post 提交给ThinkPHP的控制器,但是获取不到$_POST,应该怎么写呢

sandynet 2015-07-14 10:07:10
前端的js是这样的
                
var uid = '10002';
var a = 'get_users';

jQuery.ajax({
url: "http://localhost:8099/thinkphp111/index.php?s=/Index/index.html",
type: "POST",
data: { uid: uid, a: a },
success: function (jsonResult) {
alert(jsonResult);
},
error: function (e) {
alert(e);
}
});


php部分是这样的

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends HomeController {

public function aa()
{
$output = array();
$a = $_POST['a'] ? $_POST['a'] : '';

echo $a;
}

public function index(){
$this->aa();
}


但是执行后一直返回的结果是空。正常情况下应该返回'get_users'。请问各位这个是为什么呢?
...全文
5959 8 打赏 收藏 转发到动态 举报
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Xingw-Xiong 2016-03-13
  • 打赏
  • 举报
回复
引用 7 楼 ACMore_Xiong 的回复:
[quote=引用 5 楼 a583049958 的回复:] THinkPHP 中,你的ajax传递的参数别用 a ,m, g这类的参数名,这是TP默认获取方法,控制器,分组的,你把 a替换成其他的应该就可以了
我想问一下, 你是指改那个地方? 楼主, 你又是怎么弄好的呢?[/quote] 木事啦, 我已经知道啦。 $.ajax({ type: 'POST', url: '/index.php/Forum/checkNote', //dataType: 'json', data: {'note_title': title,'note_content': content,'note_type': type, 'srcUrl': srcUrl, 'note_author_id': '123456'}, success: function(msg) { alert("发表成功!" + msg); location.href = '/index.php/Forum/noteList?type=' + type; }, error: function(XMLHttpRequest, textStatus, errorThrown,msg) { alert(XMLHttpRequest.status); alert(XMLHttpRequest.readyState); alert(textStatus); alert(errorThrown); alert(msg); }, }); 这是我的ajax 方法,之前因为url写得不对, 所以一直是404,现在没问题啦~~
Xingw-Xiong 2016-03-13
  • 打赏
  • 举报
回复
引用 5 楼 a583049958 的回复:
THinkPHP 中,你的ajax传递的参数别用 a ,m, g这类的参数名,这是TP默认获取方法,控制器,分组的,你把 a替换成其他的应该就可以了
我想问一下, 你是指改那个地方? 楼主, 你又是怎么弄好的呢?
sandynet 2015-07-15
  • 打赏
  • 举报
回复
哇,太感谢a583049958 了。一下子就成功拉。确实是这个出问题了。
a583049958 2015-07-15
  • 打赏
  • 举报
回复
THinkPHP 中,你的ajax传递的参数别用 a ,m, g这类的参数名,这是TP默认获取方法,控制器,分组的,你把 a替换成其他的应该就可以了
sandynet 2015-07-14
  • 打赏
  • 举报
回复
看图片就知道拉啊
xuzuning 2015-07-14
  • 打赏
  • 举报
回复
你是说 <?php namespace Home\Controller; use Think\Controller; $_POST['a']=‘getusers’; class IndexController extends HomeController { public function aa() { $output = array(); $a = $_POST['a'] ? $_POST['a'] : ''; echo $a; } public function index(){ $this->aa(); } 然后浏览器地址栏 http://localhost:8099/thinkphp111/index.php?s=/Index/index.html 这样执行的吗?
sandynet 2015-07-14
  • 打赏
  • 举报
回复
我确定方法被执行了。 因为我在php端,如果我直接给$_POST['a']赋值,比如$_POST['a']=‘getusers’ 那么我在html里面执行那个js。立即alert出来getusers。说明是执行的。只是post的值PHP那里获取不到。 路由我没有设置过。
xuzuning 2015-07-14
  • 打赏
  • 举报
回复
index.php?s=/Index/index.html 为什么是这样?路由是怎么写的? 你能确定 index 方法被执行了吗?
相关推荐

4,249

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告