从jQuery Object检索数据

时间:2016-06-13 11:53:01

标签: jquery

我遇到了我从Ajax函数中收到的jQuery对象的问题。

console.log(data) ==> dumps {"isUnique":true}

console.log(data.isUnique) ==> dumps undefined

我该如何获得这些“isUnique”数据?

代码 JS:

$.ajax({
       type: "POST",
       async: false,
       url: ...some url ,
       data: { 'email' : value },
       dataType: "text",
       success: function(data){
             console.log(data);
             console.log(data.isUnique);
       }
 });

2 个答案:

答案 0 :(得分:2)

听起来你正在获得JSON。您可以使用parseJSON

var obj = jQuery.parseJSON(data);
var myValue = obj.isUnique;

正如charlietfl在评论中所提到的,您可以通过在请求中手动设置dataType来轻松避免这种情况。

  

您期望从服务器返回的数据类型。如果没有   如果指定,jQuery将尝试根据MIME类型推断它   响应(XML MIME类型将产生XML,在1.4 JSON中将产生   一个JavaScript对象,在1.4脚本中将执行脚本,和   其他任何东西都将作为字符串返回。)

...

  

" json" :将响应评估为JSON并返回JavaScript   宾语。跨域" json"请求转换为" jsonp"除非   请求在其请求选项中包含jsonp:false。 JSON   数据以严格的方式解析;任何格式错误的JSON都被拒绝了   抛出一个解析错误。从jQuery 1.9开始,空响应也是如此   被拒绝;服务器应该返回null或{}的响应。   (有关正确的JSON格式的更多信息,请参阅json.org。)

$.ajax({
    type: 'post', // or 'get' if you prefer.
    url: 'your_url',
    dataType: 'json',
    success: function(data){
        alert(data.isUnique);
    }
});



var obj = jQuery.parseJSON( '{"isUnique":true}' );
alert( obj.isUnique);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

您的dataType不正确

更改

dataType: "text",

dataType: "json",

这将告诉jQuery从内部字符串解析对象的响应