我有这种情况(我的服务器返回的JSON字符串):
{"success": true, "users": [1, 3, 4, 8]}
然而,当使用这种请求时,我会将该响应作为“字符串”:
var availableUsers = $.ajax({
url: absPath + '/users/findUsers',
type: 'POST',
data: {contents: $('#messageTo').val()},
dataType: 'json',
async: false
}).responseText;
使用:alert(typeof(availableUsers));
我得到:string
从typeof
返回值。
这样做时:
window.eval(availableUsers);
不会按预期评估JavaScript对象。
如何将有效的JSON响应(使用,async:false)转换为JavaScript可访问的对象,或者如何对从服务器返回的字符串进行属性评估?
谢谢!
答案 0 :(得分:0)
尝试将您的请求的内容类型设置为application / json 在此处阅读更多内容:What is the correct JSON content type?
答案 1 :(得分:0)
为什么不在回调中获取JSON对象?检查success
设置。
$.ajax({
url: absPath + '/users/findUsers',
type: 'POST',
data: {contents: $('#messageTo').val()},
dataType: 'json',
success: function(data){
var availableUsers = data;
alert(typeof availableUsers);
},
async: false
});
通过回调,您可以使用从服务器获得的对象执行任何操作。