当我试图通过AJAX将JSON对象传递给我的php服务器时,我遇到了一个奇怪的问题。
我调试了我的代码,看来AJAX正常运行,但是问题是我的php服务器没有从请求中获取任何数据。
这是我的AJAX请求代码:
function save(){
var name = document.querySelector('#firstHeading').textContent;
var str = document.querySelector('#bodyContent').textContent.split(',');
var lat = str[0].substring(str[0].indexOf('(') + 1);
var lng = str[1].substring(1, str[1].indexOf(')'));
var toSave = {
name: name,
lat: lat,
lng: lng
};
var toSend = {data: JSON.stringify(toSave)};
$.ajax({
type: "POST",
url: "./jsonUpload.php",
contentType: "application/json",
data: toSend
}).done(function(){
alert('Successfully saved!');
}).fail(function(e){
alert('An error occurred...');
console.log(e);
});
}
我的服务器代码:
error_log(var_export($_POST, true));
error_log(var_export($_GET, true));
error_log(var_export($HTTP_RAW_POST_DATA, true));
error_log(file_get_contents('php://input'));
$json = file_get_contents('php://input');
$data = json_decode($json);
$ _ POST和$ _GET变量都不能接收任何数据,它们只是空数组,函数file_get_contents是唯一向我显示内容但字符串不可读的函数。
当我在Java中工作时,我真的不知道我做错了什么,我曾经使用与上述相同的方法,并且代码运行良好。
任何帮助将不胜感激,谢谢您。