3

使用这两个工具时,我遇到了一个奇怪的错误。我正在对 API 进行 AJAX 查询,然后检索存储在 localStorage 中并显示到自动完成面板中的 JSON 数据。问题是根据自动完成源的来源,面板会做出不同的反应。

这是 AJAX 成功调用的回调函数:

function _company_names(data)
{
    localStorage.setItem('ac_source', JSON.parse(data).Result);

    // Works fine
    $("#search_input").autocomplete( "option", "source", JSON.parse(data).Result);
    // Send an AJAX request
    $("#search_input").autocomplete( "option", "source", localStorage.getItem('ac_source'));
}

如果我将 JSON.parse(data).Result 作为结果传递给自动完成源,那就没问题了。但是,如果我通过 localStorage.getItem('ac_source'),ac 小部件将随风发送一个 AJAX 请求(不使用我自己的函数)(我的 node.js 将尝试解析它等)。

我正在使用 localstorage 从我的代码的其他部分访问这些数据(存储它以与其他用户研究进行比较并在请求相同时显示它)。

4

1 回答 1

2

您只能在本地存储中存储字符串数据:

localStorage.setItem('ac_source', '{"key":"data","key1":"data1"}');

$("#search_input").autocomplete( "option", "source", JSON.parse(localStorage.getItem('ac_source')).Result);
于 2012-05-01T14:57:02.323 回答