在SessionStorage中存储和检索AJAX XML响应



我从Ajax获得XML响应

$.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)) 

我做错了什么!

您遇到的问题是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,因为这是不可思议的练习。

最新更新