JS Ajax调用PHP并获取ajax调用数据

2023-12-11

我有一个标准的 javascript ajax 调用,我将 data: 设置为 json 数据。

$.ajax({
    type: "POST",
    url: BaseUrl + "User/Login",    
    //url: BaseUrl + "User/Limit/1/2",
    data: '{"apiKey":"c7089786-7e3a-462c-a620-d85031f0c826","appIDGiven":"200","userName":"matt2","password":"pass"}',
    success: function(data){
        console.log(data);
    },
    error: function(request){
        console.log(request);
    },
});

我试图在 php 中获取数据$_POST["data"]这是行不通的。
然而,data: 'test={"apiKey":"c7089786-7e3a-462c-a620-d85031f0c826","appIDGiven":"200","userName":"matt2","password":"pass"}'作品。

我想知道是否可能是我的框架或类似的东西阻止了$_POST["data"]工作或者这根本不可能?或者我可以用其他东西来获取这些数据吗?

EDIT:

因此框架 YII 和扩展 Restfulii 有一种方法可以使用一行来获取数据 返回 json_decode(file_get_contents("php://input"), true);

这是获取所有数据而不需要 data= 或 {data: 但是它似乎返回一个数组,所以我访问我的属性,例如 $data["userName"] ,其中真正的 json 对象应该是 $data->["用户名”]。如果我在这方面有任何错误,请纠正我,在这种情况下我得到数组是因为我真的发送了一个 json 字符串吗?与 json 对象相比?

EDIT x2:

所以 php 使它成为一个 assoc 数组,因为它将 true 发送到 json_decode..


我认为您的代码问题出在您设置的行中data: '{....}'.
它应该是 json 格式才能正确传递(尽管它也可以是字符串格式,但您需要在服务器端解析它)

下面的代码应该可以正常工作:

$.ajax({
    type: "post",
    url: BaseUrl + "User/Login",
    data: {"apiKey":"c7089786-7e3a-462c-a620-d85031f0c826","appIDGiven":"200","userName":"matt2","password":"pass"},
    success: function(data){
        console.log(data);
    },
    error: function(request){
        console.log(request);
    }
});

在服务器端尝试:$_POST['apiKey'] $_POST['appIDGiven']等等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS Ajax调用PHP并获取ajax调用数据 的相关文章

随机推荐