我正在尝试发布一个帖子请求,将一些数据从一个php文件发送到另一个。我正在使用Jquery,我的代码如下所示
我的帖子文件:
$(function (){
$(".commit").click(function(){
const sha_id = $(this).data("sha");
$.ajax({
url : 'commitInfo.php',
type : 'POST',
data : sha_id,
contentType: "application/json; charset=utf-8",
success: function(response){
console.log(sha_id);
window.location.replace("commitInfo");
}
});
});
});
我收到的文件:
var_dump($_POST);
$_POST
返回一个空数组。并且还尝试将我的数据放在对象中。也不起作用。谁知道出了什么问题?
答案 0 :(得分:0)
在将ajax请求发送到服务器之前,检查包含数据的变量,然后通过控制台将其发送到浏览器。 Ajax请求将数据转换为键值对或json格式,您需要将json对象发送到服务器以获取对数据的访问
$.ajax({
url : 'whatever-folder/whatever-url.php',
type : 'POST',
data : { anykey: anything },
contentType: "application/json; charset=utf-8",
success: function(response){
console.log(response);
}
});
您将收到服务器中的帖子。
答案 1 :(得分:0)
您是否尝试过使用FormData
see
$(function (){
$(".commit").click(function(){
const sha_id = $(this).data("sha");
var data = new FormData();
data.append('id',sha_id );
$.ajax({
url : 'commitInfo.php',
type : 'POST',
data : data,
processData: false,
contentType: false,
success: function(response){
console.log(sha_id);
window.location.replace("commitInfo");
}
});
});
});
答案 2 :(得分:0)
(1.). post file:
$(function (){
$(".commit").click(function(){
const sha_id = $(this).data("sha");
$.ajax({
url : 'commitInfo.php',
type : 'POST',
dataType: 'json',
data : sha_id,
contentType: "application/json; charset=utf-8",
success: function(response){
console.log(sha_id);
window.location.replace("commitInfo");
}
});
});
});
(2.). Json data does not receive in post.
$json = file_get_contents('php://input');
$post = json_decode($json, TRUE);
echo '<pre>';
var_dump($post);
echo '</pre>';