我希望你能理解我的问题。我正在尝试制作一个通用的ajax函数,它将一些数据发送到php文件并获得服务器的响应。这里有一个非常相似的问题jquery - creating a generic ajax function,但是我遇到了以json格式发送数据的麻烦。让我为您提供JS代码:
function CallMethod(url, parameters, successCallback) {
$.ajax({
type: 'POST',
url: url,
data: JSON.stringify(parameters),
contentType: 'application/json;',
dataType: 'json',
success: successCallback,
error: function(xhr, textStatus, errorThrown) {
console.log(errorThrown);
}
});
}
var pars = {
id:"1",
message:"hello world"
};
function onSuccess(data) {
console.log(data);
}
CallMethod('ajaxGeneric.php', pars, onSuccess);
现在这是我的php文件' ajaxGeneric.php':
<?php
$id = $_POST["id"];
$msg = $_POST["message"];
echo $id;
echo $msg;
?>
当我运行该页面时,我在Chrome控制台中出现此错误:
SyntaxError:意外的令牌&lt;在JSON的第0位(...)
php文件似乎也有一些问题试图获取帖子值。我究竟做错了什么?发送数据?获取数据?
非常感谢任何帮助。
答案 0 :(得分:0)
尝试删除JSON.stringify
并直接传递参数,以便您的功能看起来像这样
function CallMethod(url, parameters, successCallback) {
$.ajax({
type: 'POST',
url: url,
data: parameters,
contentType: 'application/json;',
dataType: 'json',
success: successCallback,
error: function(xhr, textStatus, errorThrown) {
console.log(errorThrown);
}
});
}