希望你能理解我的问题。我正在尝试创建一个通用的 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 控制台中出现此错误:
语法错误:JSON 中位置 0(…) 出现意外标记 <
php 文件在尝试获取 post 值时似乎也存在一些问题。我究竟做错了什么?发送数据?取回数据?
任何帮助将不胜感激。
最佳答案
尝试删除 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);
}
});
}
关于javascript - 如何为 php 文件制作通用的 ajax 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39601135/