フロントエンドの 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); } });
<?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();}
Index.php ?s=/Index/index.html
これはなぜですか?ルートはどのように書かれていますか?
インデックスメソッドが実行されていることを確認しますか?
メソッドは実行されたと確信しています。
私はphp側なので、$_POST['a']='getusers'のように、$_POST['a']に直接値を代入すると
その後、そのjsをhtmlで実行します。 getuser に直ちに警告します。命令が実行されます。 PHPからpost値を取得できないだけです。
ルーティングを設定していません。
namespace HomeController;
$_POST['a']='getusers';
class IndexController extends HomeController {
public function aa ()
array(); $ a $this->aa () }
次に、ブラウザのアドレスバー http://localhost:8099/thinkphp111/index.php?s=/Ind ex/index.html
このように実行されるのでしょうか?
画像を見ればわかります
THinkPHP では、ajax によって渡されるパラメーターに a、m、g などのパラメーター名を使用しないでください。これは、TP、コントローラー、グループ化のデフォルトの取得方法です。を入れたので、それを他のものに置き換えるだけで大丈夫です
わあ、本当にありがとう a583049958。あっという間に引き寄せに成功しました。これがまさに問題なのです。