使用JavaScript计算JSON字符串,并获取它';用JavaScript实现s值
我有这个案例(我的服务器返回的JSON字符串): 但是,当使用这种请求时,我会将该响应作为“字符串”得到: 带有:使用JavaScript计算JSON字符串,并获取它';用JavaScript实现s值,javascript,ajax,json,evaluation,Javascript,Ajax,Json,Evaluation,我有这个案例(我的服务器返回的JSON字符串): 但是,当使用这种请求时,我会将该响应作为“字符串”得到: 带有:警报(类型(可用用户))我将得到:字符串从类型返回值 执行此操作时: window.eval(可用用户)它不会按预期对JavaScript对象求值 如何将有效的JSON响应(using,async:false)转换为JavaScript可访问对象,或者如何正确计算从服务器返回的字符串 谢谢 尝试将请求的内容类型设置为application/json 阅读更多信息:为什么不在回调中获取
警报(类型(可用用户))代码>我将得到:字符串
从类型
返回值
执行此操作时:
window.eval(可用用户)代码>它不会按预期对JavaScript对象求值
如何将有效的JSON响应(using,async:false)转换为JavaScript可访问对象,或者如何正确计算从服务器返回的字符串
谢谢 尝试将请求的内容类型设置为application/json
阅读更多信息:为什么不在回调中获取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
});
通过回调,您可以对从服务器获得的对象执行任何您想执行的操作。检查从请求返回给/users/findusers的内容类型标头可能重复的内容类型是否有不在此处使用成功
回调的原因?即使使用async:true
,这也可能是a)更清晰,b)更可能实现您所期望的。我不认为jQuery的自动JSON解析会在.responseText
中起作用。您可以使用jQuery.parseJSON
?我的availableUsers是一个全局变量,我需要它在$.ajax({})!$下的匿名函数之外。parseJSON帮了大忙;)@突击队:然后移除var
。但老实说,您不应该使用同步请求。在大多数情况下不需要它们。
var availableUsers = $.ajax({
url: absPath + '/users/findUsers',
type: 'POST',
data: {contents: $('#messageTo').val()},
dataType: 'json',
async: false
}).responseText;
$.ajax({
url: absPath + '/users/findUsers',
type: 'POST',
data: {contents: $('#messageTo').val()},
dataType: 'json',
success: function(data){
var availableUsers = data;
alert(typeof availableUsers);
},
async: false
});