从ajax请求获取javascript对象

从ajax请求获取javascript对象,javascript,jquery,Javascript,Jquery,如何从AJAX响应创建javascript对象 这就是我目前正在做的: PHP: 我目前在控制台上得到“未定义”。如何做到这一点?使用php内置的json\u编码,而不是使用自己的json符号 <?php return json_encode(array('status' => '1', 'site' => 'example.com')); ?> 您也正在记录object.url,但它应该是object.site 您可能还需要将标题设置为返回applicat

如何从AJAX响应创建javascript对象

这就是我目前正在做的:

PHP:


我目前在控制台上得到“未定义”。如何做到这一点?

使用php内置的
json\u编码,而不是使用自己的json符号

<?php
    return json_encode(array('status' => '1', 'site' => 'example.com'));
?>

您也正在记录
object.url
,但它应该是
object.site


您可能还需要将标题设置为返回
application/json
,而不是
text/html
。这也可以通过将AJAX请求中的
dataType
type参数指定为
json

来实现,将AJAX请求的
dataType
设置为
json
,并且
data\u响应将是一个已经解析到的对象


或者您也可以使用
$.getJSON

您也可以尝试以下方法:

PHP


如果要使用
eval
解析原始对象字符串,则必须将对象符号代码包装在括号中:

var object = eval( '(' + data_response + ')' );
以下内容将阻塞解析器:

eval('{status:"1", site:"example.com"}')
但这将如您所期望的那样起作用:

eval('({status:"1", site:"example.com"})')
编辑:请注意,我不一定赞同此解决方案。这只是为了让您了解在使用
eval
时需要什么

$.ajax({
  url: url, // your url where the php is
  dataType: 'json', 
  data: data, //send data
//callback
  success: function(data_response){  
      alert(data_response.status);
      alert(data_response.site);
}
});
var object = eval( '(' + data_response + ')' );
eval('{status:"1", site:"example.com"}')
eval('({status:"1", site:"example.com"})')