当我在chrome中运行我的页面时,我得到这个错误“uncaught syntaxerror unexpected token U”。在firefox中,我得到JSON。解析:意想不到的字符”。我从一个php文件返回json数据,返回的json字符串是有效的。我在http://jsonlint.com/上查过。任何帮助都将不胜感激。谢谢。

这是返回的JSON字符串

[
    ["1","Pan Africa Market","\"1521 1st Ave, Seattle, WA\"","47.608941","-122.340145","restaurant"],
    ["2","The Melting Pot","14 Mercer St, Seattle, WA","47.624562","-122.356442","restaurant"],
    ["3","Ipanema Grill","1225 1st Ave, Seattle, WA","47.606366","-122.337656","restaurant"],
    ["4","Sake House","230 1st Ave, Seattle, WA","47.612825","-122.34567","bar"],
    ["5","Crab Pot","1301 Alaskan Way, Seattle, WA","47.605961","-122.34036","restaurant"],
    ["6","Mexican Kitchen","2234 2nd Ave, Seattle,WA","47.613975","-122.345467","bar"],
    ["7","Wingdome","1416 E Olive Way, Seattle, WA","47.617215","-122.326584","bar"],
    ["8","Piroshky Piroshky","1908 Pike pl, Seattle, WA","47.610127","-122.342838","restaurant"]
]

当前回答

我得到这条消息,而验证(在MVC项目)。 对我来说,添加ValidationMessageFor元素解决了这个问题。

准确地说,是jquery.validate.unobtrusive.js中的43行导致了这个问题:

  replace = $.parseJSON(container.attr("data-valmsg-replace")) !== false;

其他回答

好吧,对于那些实际上在你的代码中任何地方都找不到错误的人,既不是“在本地存储中未定义也不是null”。简单地只是注释掉你的代码,并编写另一个实际删除本地存储项。在那之后,你可以注释或删除当前的代码,并通过简单地取消注释来重新设置之前的代码(如果你不删除t…如果你写过,你可以再写一遍:)

LocalStorage.setItem('Previous' , "removeprevious");  


LocalStorage.removeItem('Previous');   
 Console.log(LocalStorage.getItem('Previous'));

控制台将显示null,并且它..如果t不起作用,请重新设置代码!你有错误。

对不起我的英语!

您应该考虑尝试在服务器端解析数据,然后将其发送到客户端进行处理。

这种错误发生的最常见的情况是使用正在生成控件的模板,然后通过“覆盖”默认模板来更改id和/或name的生成方式

@Html.TextBoxFor(m => m, new {Name = ViewData["Name"], id = ViewData["UniqueId"]} )

然后忘记将ValidationMessageFor更改为

@Html.ValidationMessageFor(m => m, null, new { data_valmsg_for = ViewData["Name"] })    

希望这能为您节省一些时间。

这不是一项困难的任务。这个问题也发生在我的网站,你应该转移你的js文件顶部排序。因为在你使用JSON解析的地方,这一次你的JS文件没有被加载。 例#

<script type="text/javaScript">
...........SOME CODE.............
</script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>

改变

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script type="text/javaScript">
...........SOME CODE.............
</script>

我得到这条消息,而验证(在MVC项目)。 对我来说,添加ValidationMessageFor元素解决了这个问题。

准确地说,是jquery.validate.unobtrusive.js中的43行导致了这个问题:

  replace = $.parseJSON(container.attr("data-valmsg-replace")) !== false;