ホームページ >バックエンド開発 >PHPチュートリアル >Jquery ajax postをThinkPHPコントローラーに送信するのですが、$_POSTが取得できないのですがどう書けばよいでしょうか?

Jquery ajax postをThinkPHPコントローラーに送信するのですが、$_POSTが取得できないのですがどう書けばよいでしょうか?

WBOY
WBOYオリジナル
2016-06-23 13:30:461489ブラウズ

フロントエンドの 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
これはなぜですか?ルートはどのように書かれていますか?
インデックスメソッドが実行されていることを確認しますか?

メソッドは実行されたと確信しています。
私はphp側なので、$_POST['a']='getusers'のように、$_POST['a']に直接値を代入すると
その後、そのjsをhtmlで実行します。 getuser に直ちに警告します。命令が実行されます。 PHPからpost値を取得できないだけです。
ルーティングを設定していません。


3be7fcd49354198c80e5acf804a5a0faaa () }
次に、ブラウザのアドレスバー http://localhost:8099/thinkphp111/index.php?s=/Ind ex/index.html
このように実行されるのでしょうか?



画像を見ればわかります

THinkPHP では、ajax によって渡されるパラメーターに a、m、g などのパラメーター名を使用しないでください。これは、TP、コントローラー、グループ化のデフォルトの取得方法です。を入れたので、それを他のものに置き換えるだけで大​​丈夫です

わあ、本当にありがとう a583049958。あっという間に引き寄せに成功しました。これがまさに問題なのです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:SQLクエリの問題次の記事:SQLクエリの問題