当我将请求类型设置为“GET”时,(并且在服务器端也使用$ _GET),它成功获取响应,
但是当我将类型设置为POST时,会给出400 error
,Missing required parameters: student_id
。
以下是代码:
$.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:
http://localhost/demo.git/index.php?r=fees/fees/transactions&_csrf=bEJJWVowdl8jBwQjaUMsAA52eT8MXBMLJigwHTxeKSlVKyxoD2o5KQ%3D%3D&student_id=10115"
。
当我将上述请求类型设置为POST并通过POST方法在服务器端接收变量时,为什么这不起作用?
这是服务器端操作(我正在使用Yii2 MVC框架)
public function actionTransactions($student_id){
$student_id = $_POST['student_id'];
...
...
echo json_encode($response);
}
答案 0 :(得分:2)
您的函数需要来自$student_id
方法的参数GET
。如果您使用AJAX发送请求,请使用data: { 'student_id': student_id },
- 它将被添加到您发送AJAX的URL中。
如果您想使用POST
方法,则必须修改您的网址:
url: "?r=fees/fees/transactions?student_id=" + student_id,
然后移除data
键。
第二个解决方案是从$student_id
中删除actionTransactions
个参数,然后系统将接受$student_id
中GET
之后没有$_REQUEST
的请求,但您必须确保&#{1}} 39; s在this.modalCtrl.create(ReminderDetailsPage, { data: data });
。