我遇到了我从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);
}
});
答案 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;
答案 1 :(得分:2)
您的dataType
不正确
更改
dataType: "text",
要
dataType: "json",
这将告诉jQuery从内部字符串解析对象的响应