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

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

WBOY
WBOYOriginal
2016-06-23 13:30:461489browse

前端的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部分是这样的
<?phpnamespace 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'。请问各位这个是为什么呢?


回复讨论(解决方案)

index.php ?s=/Index/index.html
为什么是这样?路由是怎么写的?
你能确定 index 方法被执行了吗?

我确定方法被执行了。
因为我在php端,如果我直接给$_POST['a']赋值,比如$_POST['a']=‘getusers’
那么我在html里面执行那个js。立即alert出来getusers。说明是执行的。只是post的值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
这样执行的吗?



看图片就知道拉啊

THinkPHP 中,你的ajax传递的参数别用 a ,m, g这类的参数名,这是TP默认获取方法,控制器,分组的,你把 a替换成其他的应该就可以了 

哇,太感谢a583049958 了。一下子就成功拉。确实是这个出问题了。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn