在我的案例中,如何通过 ajax 获取检索数据?

How to get retrieve data via ajax in my case?

我的 php 和 javascript 有一个奇怪的问题。

我在 php 中有一些像

$testData = array(
       'prop1' => true,
       'prop2' => 2,
       'name' => 'testname',
       'number' => 123
);

echo json_encode($testData);

在Javascript

 $.ajax({
    type: "GET",
    cache: false,
    async: false,
    url: phpfile,
    global: false,
    success: function(result) {
        console.log(result)
        console.log(result.prop1)
        console.log(result.prop2)
    }

我能够从 console.log(result) 获得结果,但我无法从 console.log(result.prop1)console.log(result.prop2) 获得任何结果。我是不是做错了什么?

谢谢!

您已将 json 从 php

转换为
success: function(result) {
  var res = JSON.parse(result)
  console.log(result)
  console.log(res.prop1)
  console.log(res.prop2)
}

有 2 种方法可以从 ajax 中获取 json 个对象。

第一个:(推荐) 您必须使用 JSON

定义数据类型 属性

示例:

$.ajax({
    type: "GET",
    cache: false,
    async: false,
    url: phpfile,
    global: false,
    dataType: 'JSON',
    success: function(result) {
        console.log(result)
        console.log(result.prop1)
        console.log(result.prop2)
    }
});

在这种情况下,jQuery 会将结果处理为 JSON 然后您可以访问它的对象 属性,如果它不是 JSON,那么它将用于错误事件。

第二个: 解析对象的另一种方法是使用 JSON.parse() 函数,因为您获取的数据只是字符串。

示例:

$.ajax({
    type: "GET",
    cache: false,
    async: false,
    url: phpfile,
    global: false,
    success: function(result){
        var data = JSON.parse(result);
        console.log(data);
        console.log(data.prop1);
        console.log(data.prop2);
    }
});

你在 PHP 中编码你的数组以将它发送到 Javascript,通过写 json_encode($testData); 所以要在 javascript 端得到它你必须使用 JSON.parse(yourencodedArray) 通过使用它,您可以在数组中获取值。

var data = JSON.parse(yourencodedArray);
var dat1 = data.prop1;
var dat2 = data.prop2;

JSON.parse 能够解码您的编码数组。