我从ajax获取XML响应,然后我尝试将其存储在sessionStorage中,但我无法检索它。
$.ajax({
url: '/webservice.svc/getProfile',
data: { "memberId": $(authenticateResponse).find("memberId").text() },
method: "GET",
async: false,
success: function (d) {
sessionStorage.clear();
sessionStorage.setItem('ALMS', d);
}
});
当我尝试检索
时console.dirxml(sessionStorage.ALMS)
[object XMLDocument]
console.dirxml($(sessionStorage.ALMS))
我做错了什么!!
答案 0 :(得分:2)
您遇到的问题是sessionStorage
只能保留字符串。因此,使用toString()
强制执行XMLDocument,因此您将看到它的价值。
要解决此问题,您需要在保存之前手动序列化XMLDocument。试试这个:
$.ajax({
url: '/webservice.svc/getProfile',
data: {
memberId: $(authenticateResponse).find("memberId").text()
},
method: "GET",
success: function (d) {
sessionStorage.clear();
sessionStorage.setItem('ALMS', new XMLSerializer().serializeToString(d));
}
});
另请注意,我删除了async: false
,因为这是非常糟糕的做法。