尝试使用jQuery 2.1.x到PHP 7.1代码发布 JS对象时,PHP后端会收到一个空对象,其中包含以下代码:
JS:
$("#newTabLink").click(function(e) {
ntn++;
console.log('ntn = ' + ntn + ' / id =' + id);
id++;
var tabData = new Object();
var tc = $('#tabs').children().length;
console.log('tc = ' + tc)
tabData.label = 'New Tab ' + ntn;
tabData.pos = tc;
$.ajax({
url: 'services/save_obj.php',
type: 'POST',
data: JSON.stringify(tabData),
async: true,
dataType: 'json',
cache: false,
contentType: "application/json; charset=utf-8",
encode: true,
success: function(response) {
if (response.success == true) {
id = response.id;
} else if (response.success == false) {
alert('Aww, something went wrong!');
}
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
services / save_obj.php:
if (isset($_POST)) {
$strvalue = filter_input(INPUT_POST, 'label', FILTER_SANITIZE_STRING);
$user_id = filter_input(INPUT_POST, 'objsay', FILTER_VALIDATE_INT);
$lang = filter_input(INPUT_POST, 'lng', FILTER_SANITIZE_STRING);
$location = filter_input(INPUT_POST, 'loc', FILTER_SANITIZE_STRING);
$position = filter_input(INPUT_POST, 'pos', FILTER_SANITIZE_STRING);
var_dump($_POST);
}
抓住我的脑袋弄清楚我在这里做错了什么。有什么想法吗?
答案 0 :(得分:1)
如果从前端应用程序发送JSON数据,您可以使用php:// input将数据发现到php脚本中。
示例:
服务/ save_obj.php
$input = file_get_contents('php://input');
if(!empty($input)){
$input = json_decode($input, true);
// ... some logic
}
您可以使用全局$ _POST,仅使用表单数据。