我在php中创建了一个大型数据结构,并将其发送回一个jQuery "post“请求。数据以下列格式到达
"{\"event\":{\"id\":\"5\",\"title\":\"Test Event\",\"event_ref\":\"TEST\",\"approval\":\"na\",\数据以双引号转义的双引号字符串的形式返回。url目录标记也被转义。以上只是返回的字符串的一小部分。
通常,我不能使用点表示法或数组表示法来访问数据。我想我需要去掉外边的双引号,不用转义。数据是一个数组,其中一些项是简单值,一些是对象,有些是对象数组。
如何访问返回的数据?结构将永远是相同的,尽管其中的一些对象将经常丢失。
js代码是:
// The login button
$("#loginButton").click( function(){
var username = $('input#login-username').val();
var password = $('input#login-passwd').val();
alert("Login button clicked with username/password: "+username+" / "+password);
$.post(
$_interface,
{ option: 'login', userID: username, pwd: password },
function(response){
if (response) {
// alert("Response = true");
$.post(
$_interface,
{ option: 'superGlobalValues', target: 'session' },
function(data){
alert(data);
}
);
} else {
alert("Response = false");
}
}
);
}
);发布于 2012-12-05 13:26:25
jquery上的.post函数的结构是:
jQuery.post( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )在本例中,您使用的是url、data和success函数,理论上jquery应该已经知道答案是json答案,并计算对象的答案,但只需确保更改代码以添加json数据类型:
$.post(
$_interface,
{ option: 'login', userID: username, pwd: password },
function(response){
if (response) {
// alert("Response = true");
$.post(
$_interface,
{ option: 'superGlobalValues', target: 'session' },
function(data){
alert(data);
}
);
} else {
alert("Response = false");
}
}, "json"
);如果这不起作用,就评估答案,所以不要这么做
function(data) {
alert(data);
}做一些类似的事情
function(data) {
my_json = eval(data);
alert(my_json);
end发布于 2012-12-07 15:55:36
发布于 2012-12-05 13:25:33
jQuery ajax对象具有param dataType,可以将其设置为JSON,您将得到正确的解析响应。示例:
$.ajax({
type: 'POST',
url: url,
data: data,
success: function(data){ //data contains parsed response, try to console.log this },
dataType: 'json'
});https://stackoverflow.com/questions/13724193
复制相似问题