更新 尝试使用绝对错误的方法进行调试。我通过网络选项卡双击.php文件,并假设它正在发送与通过ajax POST请求相同的标头。这就是GET为我工作的原因(因为数据打包在URL中,双击php文件意味着我正在模拟ajax请求中会发生什么)。
感谢@Phil指出我正确的方向:使用错误打印结果数据后,我发现responseText包含了我最初想要的POST请求。
print_r($_POST)
我试图通过POST请求发送2条信息而不使用表单。
似乎正在正确地发送数据,因为表格数据''当我在Chrome的网络选项卡中查看php文件的标题时。但是,使用"Array ( )"
检查是否在PHP端检索数据只会产生一个空数组:url = "/members/duc.php";
data = {
"d": "test",
"r": 156
};
$.ajax({
'type': "POST",
'async': false,
'global': false,
'url': url,
'data': data,
'dataType': "json",
'success': function (data) {
jsonContainer = data;
console.log('success');
}
});
JS
print_r($_POST);
PHP
method: 'POST'
尝试调试
5.将ajax method: 'GET'
更改为print_r($_GET)
会在服务器端显示代码为$_REQUEST
的数据。
1.我尝试了var = file_get_contents("php://input");
并设置了$.post
我试过发送json然后解码输入
3.我尝试使用$.ajax
代替{duc:data}
4.我尝试将ajax中的数据设置为<html>
<head>
<title> </title>
</head>
<body>
<select class = 'form-control'>
<option>Select an Option:</option>
<option>Electrical</option>
<option>Mechanical</option>
<option>Structural</option>
<option>Others</option>
</select>
</body>
</html>
6.用www尝试POST方法。包含在地址栏中,没有变化。
$ _ GET正在运作,因为
答案 0 :(得分:0)
数据类型:&#39; JSON&#39;严格,检查你的php echo数据类型,确保是json
试试这个
//js
url = "/members/duc.php";
data = {
"d": "test",
"r": 156
};
$.ajax({
'type': "POST",
'async': false,
'global': false,
'url': url,
'data': data,
//'dataType': "json",
'success': function (data) {
jsonContainer = data;
console.log('success');
}
});
//php
print_r($_POST);
或
//js
url = "/members/duc.php";
data = {
"d": "test",
"r": 156
};
$.ajax({
'type': "POST",
'async': false,
'global': false,
'url': url,
'data': data,
'dataType': "json",
'success': function (data) {
jsonContainer = data;
console.log('success');
}
});
//php
echo json_encode($_POST);
会得到数据,但我认为第二种更好。