Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 自动完成(jqueryui)和本地存储_Javascript_Html_Jquery Ui_Local Storage - Fatal编程技术网

Javascript 自动完成(jqueryui)和本地存储

Javascript 自动完成(jqueryui)和本地存储,javascript,html,jquery-ui,local-storage,Javascript,Html,Jquery Ui,Local Storage,我只是在使用这两个工具时遇到了一个奇怪的错误。 我对API进行AJAX查询,然后检索存储在localStorage中并显示在自动完成面板中的JSON数据。问题在于,根据自动完成源的来源,面板的反应会有所不同 以下是AJAX成功时调用的回调函数: function _company_names(data) { localStorage.setItem('ac_source', JSON.parse(data).Result); // Works fine $("#sear

我只是在使用这两个工具时遇到了一个奇怪的错误。 我对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)作为结果传递给autocomplete源代码,就可以了。但是,如果我传递localStorage.getItem('ac_source'),ac小部件将发送一个AJAX请求(不使用我自己的函数)(我的node.js将尝试解析它,等等)


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

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

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

$("#search_input").autocomplete( "option", "source", JSON.parse(localStorage.getItem('ac_source')).Result);

getItem-字符串的返回类型是什么?在使用它之前,是否也需要对其进行JSON.parse?看起来autocomplete正在将字符串解释为要查询的URL。您是对的,这是一个解析问题。我修复了影响本地存储中数据的问题,然后在源自动完成中对其进行解析:localStorage.setItem('ac_source',raw_data');$(“#搜索输入”).autocomplete(“选项”,“源”,JSON.parse(localStorage.getItem('ac#u源”)).Result);