【问题标题】:jQuery getJSON parseerror Expected ';'jQuery getJSON parseerror 预期的 ';'
【发布时间】:2011-09-05 21:35:20
【问题描述】:

使用 IE8、jQuery 1.6.1.min.js。

来自 REST 服务的 JSON 似乎是有效的(至少当我在 jsonlint.com 上验证它时)

{
"requestId":"1624517264",
"acknowledge":1,
"errorCode":0,
"totalResultCount":2,
"results":[
{"EmployeeCode":"007","EmployeeUno":7,"EmployeeName":"Bond, James","Location":"Unknown","Login":"JBOND"},
{"EmployeeCode":"008","EmployeeUno":8,"EmployeeName":"Bar, Foo","Location":"NYC","Login":"FBAR"}
]}

jQuery:

  $.getJSON(urlToSvc + "&callback=?", function (data) {
                   // can't get to here 
                });

我收到一个 JavaScript 错误,应为“;”。我做错了什么?

【问题讨论】:

  • 这一行之前的行是什么?也许错字在那里?
  • 你在使用 $.get(urlToSvc + "&callback=?", function (data) { //process }, 'json'); 时遇到同样的错误吗?
  • 我认为 jquery 返回 null 或者如果 json 无论如何都是无效的,所以它不会抛出语法错误。错误是你的 JS 某处。不过,您给我们的 sn-p 中似乎没有。

标签: jquery json parse-error


【解决方案1】:

JSON 看起来有效。考虑回溯不精确的可能性,实际上它是回调函数中的语法错误。还要确保这些数据是实际接收到的数据——例如,如果 URL 稍有偏差,您可能正在尝试解析错误页面。 Chrome 或 Firebug 的网络标签非常适合这个。

【讨论】:

    【解决方案2】:

    如果这正是来自 urlToSvc 的响应,那么看起来您正在发出 JSONP 请求,但 urlToSvc 正在返回纯 JSON。

    如果您使用 Firebug 之类的工具来检查 $.getJSON() 发出的请求,您应该会发现它正在将 callback=? 替换为 callback=jQuery152012865984649397433_1306892572812 之类的东西。这意味着 jQuery 期望 JSON 作为参数返回给对jQuery152012865984649397433_1306892572812() 的函数调用。这就是它如何在幕后连接你的回调函数。

    在这种情况下,响应应该看起来像这样(尽管确切的函数名称会随着每个请求而改变,由 callback 查询字符串参数指定):

    jQuery152012865984649397433_1306892572812('{"requestId":"1624517264","acknowledge":1,"errorCode":0,"totalResultCount":2,"results":[{"EmployeeCode":"007","EmployeeUno":7,"EmployeeName":"Bond, James","Location":"Unknown","Login":"JBOND"},{"EmployeeCode":"008","EmployeeUno":8,"EmployeeName":"Bar, Foo","Location":"NYC","Login":"FBAR"}]}')
    

    【讨论】:

    • 戴夫,你说得对,服务返回纯 JSON。任何想法为什么它没有与回调函数一起返回?
    • Dave 你让我思考,所以我开始检查 WCF 服务 web.config。 “crossDomainScriptAccessEnabled”设置为 false。将此设置为 true 解决了我遇到的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多