在sessionStorage中存储和检索ajax xml响应

时间:2017-04-28 09:38:19

标签: jquery ajax xml

我从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)) 

我做错了什么!!

1 个答案:

答案 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,因为这是非常糟糕的做法。