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

Javascript 在我的例子中,如何通过ajax获取检索数据?,javascript,php,ajax,Javascript,Php,Ajax,我的php和javascript中有一个奇怪的问题 我有一些php的东西,比如 $testData = array( 'prop1' => true, 'prop2' => 2, 'name' => 'testname', 'number' => 123 ); echo json_encode($testData); 在Javascript中 $.ajax({ type: "GET", cach

我的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)
中获取任何内容。我做错什么了吗


谢谢

您已经从php转换了json

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

您已经从php转换了json

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

从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)
    }
});
$.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);
    }
});
在这种情况下,jQuery将把结果处理为
JSON
,然后您可以访问它的对象属性,如果它不是
JSON
,那么它将转到错误事件

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

例如:

$.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)
    }
});
$.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);
    }
});

从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)
    }
});
$.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);
    }
});
在这种情况下,jQuery将把结果处理为
JSON
,然后您可以访问它的对象属性,如果它不是
JSON
,那么它将转到错误事件

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

例如:

$.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)
    }
});
$.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);
    }
});

通过编写
json\u encode($testData),用PHP对数组进行编码,将其发送到JavascriptJSON.parse(yourencodedArray)
通过使用它,您可以在数组中获取值

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

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

通过编写
json\u encode($testData),用PHP对数组进行编码,将其发送到JavascriptJSON.parse(yourencodedArray)
通过使用它,您可以在数组中获取值

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

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

dataType:'json'
添加到ajax请求中?您从console.log(结果)输出的是什么?console.log(结果)给您{“prop1”:true,“prop2”:2,“name”:“testname”,“number”:123}将
dataType:'json'
添加到ajax请求中?您从console.log(结果)输出的是什么?console.log(结果)给您的是什么给你{“prop1”:true,“prop2”:2,“name”:“testname”,“number”:123}另一种方法存在(为了答案的完整性,但我不建议这样做):如果你不指定数据类型,它将尝试从收到的响应类型猜出它是什么类型的数据。默认情况下,它将是纯html,因此它接收它时将假定它只是一个字符串(这就是这个问题中发生的情况)。在输出作为响应的数据之前,可以设置一个header
header('Content-Type:application/json')这意味着响应被解释为json。另一种方法存在(为了答案的完整性,但我不建议这样做):如果您不指定数据类型,它将尝试根据收到的响应类型猜测它是什么类型的数据。默认情况下,它将是纯html,因此它接收它时将假定它只是一个字符串(这就是这个问题中发生的情况)。在输出作为响应的数据之前,可以设置一个header
header('Content-Type:application/json')这意味着响应被解释为json。