可能是我无法在网上正确搜索这个。目前我遇到的问题是我正在使用jquery自动完成localStorage意味着如果用户的本地存储有数据使用,否则它将进行AJAX调用并将数据发送到自动完成现在的情况就好像我通过AJAX自动完成工作正常但是如果是来自本地存储,它会显示错误,如
jquery-1.11.0.js:9666 GET http://localhost:8080/organizationSource/[%…value%22:%%22,%%22:%225625%22%7D]?term=ll&_=149631722767 400
我的代码就像
if(localStorage.getItem("orgListandIds")!==undefined && localStorage.getItem("orgListandIds")!==null){
var data=localStorage.getItem("orgListandIds");
callAutocomplete(data);
}
else{
$.ajax({
url:"/organizationSourceMapping/loadOrgs.htm",
dataType:"json",
success:function(data){
localStorage.setItem("orgListandIds",data);
callAutocomplete(data)
}
})
}
}
function callAutocomplete(data){
$("#searchByText").autocomplete({
maxShowItems:5,
minLength:2,
autoFocus: true,
source:data,
select:function(event,ui){
idValue=ui.item.idValue;
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
我尝试使用JSON.stringify在localStorge中存储数据,但这也是工作
答案 0 :(得分:0)
在挣扎之后,我得到了存储正在返回JSON对象的建议,我需要在发送到自动完成之前进行解析。所以我做了这样的改变
if(localStorage.getItem("orgListandIds")!==undefined && localStorage.getItem("orgListandIds")!==null){
var data=localStorage.getItem("orgListandIds");
callAutocomplete(JSON.parse(data));
}
else{
$.ajax({
url:"/organizationSourceMapping/loadOrgs.htm",
dataType:"json",
success:function(data){
localStorage.setItem("orgListandIds",JSON.stringify(data));
callAutocomplete(data)
}
})
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>