javascript - 如何为 php 文件制作通用的 ajax 函数

标签 javascript php jquery json ajax

希望你能理解我的问题。我正在尝试创建一个通用的 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/

相关文章:

javascript - 外部 javascript 不适用于 spring

javascript - 基本 Javascript onclick 函数调用不起作用

php - MySQL 覆盖 auto_increment?

javascript - 有人可以解释为什么这个测试显示 jquery $.each 比原生更快吗?

jquery - 通过滚动向 h1 标签添加/删除类

javascript - 将 ES6 箭头函数转换为 ES5 函数 JavaScript

javascript - 我如何将静态函数的值发送到另一个对象?

javascript - React - 数组拼接问题

php - 如何将图像文件上传到现有数据库?

php - 在 php/javascript 中将 "Sun Jul 15 2012 00:00:00 GMT+0700 (SE Asia Standard Time)"转换为 YYYY-mm-dd