2017-07-21 22 views
-3

リクエストタイプを「GET」に設定して(サーバ側でも$ _GETを使用すると)、レスポンスを正常に取得します。 a 400 errorMissing required parameters: student_id私はタイプをPOSTに設定します。リクエストメソッドがGETでPOSTメソッドに失敗したときに、このajaxリクエストが成功する理由

http://localhost/demo.git/index.php?r=fees/fees/transactions&_csrf=bEJJWVowdl8jBwQjaUMsAA52eT8MXBMLJigwHTxeKSlVKyxoD2o5KQ%3D%3D&student_id=10115"

ここ
$.ajax({ 
     type: "GET", 
     url: "?r=fees/fees/transactions", 
     dataType: "json", 
     data: { student_id: student_id },   
     success:function(msg) { 
      console.log(msg); 
     }, 
     error: function(xhr, ajaxOptions, thrownError){ 
      console.log("failed"); 
      console.log(xhr.responseText); 
      console.log(ajaxOptions); 
      console.log(thrownError);  
     } 
}); 

は私がGETするリクエストメソッドを設定し、リクエストURLです:

は、ここでは、コードです。

なぜ動作しないのは、私が投稿し、POSTメソッドにより、サーバー側で変数を受信するために上記の要求タイプを設定しますか?ここ

は、サーバー側のアクション(IはYii2 MVCフレームワークを使用しています)

+0

downvoter、お世話になりますか? –

+0

$ _POSTに$ _GETメソッドのパラメータをどのように取得できますか? –

+0

$ _REQUESTは、$ _GETまたは$ _POSTというメソッドがわからない場合に使用できます。 –

答えて

2

あなたの関数はGETメソッドからのparam $student_idを必要としています。あなたがAJAXを使ってリクエストを送信している場合は、data: { 'student_id': student_id },を使用しています - あなたのURLにAJAXが送信されます。

url: "?r=fees/fees/transactions?student_id=" + student_id, 

そしてdataキーを削除:あなたはPOSTメソッドを使用する場合は

は、あなたのURLを変更する必要があります。

第二の溶液は、あなたのactionTransactionsから$student_idのparamを削除することです、それは$_REQUESTでだと、システムがGET$student_idせずに要求を受け入れますが、あなたは確認する必要があります。

+0

答えは少し遅れましたが、私がすでに理解しているように、これは間違いなく完全な解決策です。また、質問がアップヴォートに値するとは思わない?あなたがアップヴォートをしていれば、個人的に私は、再現できる問題をはっきりと完全に記述するよう努力したと思うので、これに関するドキュメンテーションもあまり一般的ではありません。少なくとも私は見つけられませんでした。 –

-1
public function actionTransactions($student_id){ 
    $student_id = $_POST['student_id']; 
     ... 
     ... 
    echo json_encode($response); 

} 
$.ajax({ 
    type: "GET/POST", 
    url: "?r=fees/fees/transactions", 
    dataType: "json", 
    data: { 'student_id': student_id },   
    success:function(msg) { 
     console.log(msg); 
    }, 
    error: function(xhr, ajaxOptions, thrownError){ 
     console.log("failed"); 
     console.log(xhr.responseText); 
     console.log(ajaxOptions); 
     console.log(thrownError);  
    } 

})です。

あなたは見積もり 'student_id'でstudent_idを見逃しました。乾杯。

+0

は何も変わりません。 student_idが引用されていなくてもうまくいくはずです –

+0

@RameshPareek @RameshPareekこれは変数を参照する変数の値の代わりに、変数「student_id」を使用します。これは、あなたが投稿しようとしているエンドポイントのキーです。読む。それはまた、あなたのエンドポイントがこのエラーを出した理由です:「欠落している必須パラメーター:student_id」。 私は正直なところあなたが少し無礼でなければならないと思っています、人々はここで無料でお手伝いしようとしています。 – iSidle

+0

@iSidle、私はdownvotingが私を助けた方法を理解していない。あなたのコメントについては、私も引用符で試した、私は同じエラーを取得します。 –

関連する問題