当前位置: 首页 > 面试题库 >

json Uncaught SyntaxError:意外令牌:

贝自怡
2023-03-14
问题内容

尝试进行呼叫并检索一个非常简单的一行JSON文件。

$(document).ready(function() {

    jQuery.ajax({ 
        type: 'GET',
        url: 'http://wncrunners.com/admin/colors.json' ,
        dataType: 'jsonp', 
        success: function(data) { 
            alert('success');
        }
    });


  });//end document.ready

这是RAW请求:

GET http://wncrunners.com/admin/colors.json?callback=jQuery16406345664265099913_1319854793396&_=1319854793399 HTTP/1.1
Host: wncrunners.com
Connection: keep-alive
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.106 Safari/535.2
Accept: */*
Referer: http://localhost:8888/jquery/Test.html" target="_blank">html
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

这是RAW回应:

HTTP/1.1 200 OK
Date: Sat, 29 Oct 2011 02:21:24 GMT
Server: Apache/1.3.33 (Unix) mod_ssl/2.8.22 OpenSSL/0.9.7d SE/0.5.3
Last-Modified: Fri, 28 Oct 2011 17:48:47 GMT
ETag: "166a2402-10-4eaaeaff"
Accept-Ranges: bytes
Content-Length: 16
Content-Type: text/plain
Connection: close

{"red" : "#f00"}

响应中返回了JSON(红色:#f00),但Chrome报告了 Uncaught SyntaxError:Unexpected
token:colors.json:1

如果我直接导​​航到url本身,则返回JSON并显示在浏览器中。

如果我将colors.json的内容粘贴到JSLINT中,则json会验证。

有什么主意为什么我不能得到这个错误,并且我从来没有成功回调吗?

编辑 -上面的jQuery.ajax()调用在jsfiddle.net上运行完美,并按预期返回警报“成功”。

编辑2-
此URL正常运行'http://api.wunderground.com/api/8ac447ee36aa2505/geolookup/conditions/q/IA/Cedar_Rapids.json’我注意到它返回为TYPE:text
/ javascript和Chrome没有抛出意外令牌。我已经测试了其他几个URL,唯一不会抛出Unexptected
Token的URL是作为类型返回的文坛:text / javascript。

以text / plain和application / json返回的流未正确解析。


问题答案:

您已经告诉jQuery期待JSONP响应,这就是jQuery将callback=jQuery16406345664265099913_1319854793396&_=1319854793399部分添加到URL的原因(您可以在请求的转储中看到它)。

您返回的是JSON,而不是JSONP。您的回应看起来像

{"red" : "#f00"}

jQuery期望这样的事情:

jQuery16406345664265099913_1319854793396({"red" : "#f00"})

如果您实际上需要使用JSONP来绕过相同的原始策略,则服务的服务器colors.json需要能够实际返回JSONP响应。

如果相同的原始政策对于您的应用程序来说不是问题,那么您只需dataTypejQuery.ajax调用中的改成json而不是即可jsonp



 类似资料:
  • 问题内容: 为什么每次我做时:- 它只是解析很好,但是当我这样做时:- 它给我一个错误,说:- 问题答案: 您要它解析JSON文本(不是)。那是无效的JSON,字符串必须用双引号引起来。 如果要与第一个示例等效:

  • 本文向大家介绍意外的令牌相关面试题,主要包含被问及意外的令牌时的应答技巧和注意事项,需要的朋友参考一下 您的JavaScript表示使用JSONP模式发出Ajax请求(这涉及将元素插入文档中而不是使用XMLHttpRequest)。 您得到的响应是一个XML文档,而不是遵循JSONP模式的JavaScript程序,它类似于: 因为浏览器试图将XML作为JavaScript执行(不是),您会收到错误

  • My HQL: 我收到以下错误: 我是HQL的新手。我想通过代码动态设置间隔值。我设置了等于比较的参数值。我读过http://www.mkyong.com/hibernate/hibernate-parameter-binding-examples/post,但我不知道在没有其他符号的情况下如何设置timeOffSet值。 斯纳克斯。 编辑: 我试过?及其工作良好,但我想用来实现这一点。

  • 我必须获得我的数据库(PostgreSQL)中的所有注册表,并使用不带大小写的。我试过使用标准,但ignoreCase()对我不起作用(我使用的是Hibernate3.6)。 我也尝试过使用ilike方法,但仍然不起作用。 这个版本也是: 因此,当我尝试在Hibernate中使用HQL创建查询时,会出现以下错误: 我的代码如下所示: 我做错了什么?

  • 我在使用Struts2和Hibernate时遇到了以下错误: 我有这个方法: folling代码定义类之间的关系: Contrat类: Paiement类: PeriodePay等级: 此查询在phpMyAdmin中工作良好;你能告诉我出了什么问题吗 编辑1: 我在试着别搞错了: 我在控制台中得到结果: 但是使用jsp我在数据表中得不到结果,也许我必须修复迭代器

  • 我的登录模板中有一些代码,显示了用freemarker编写的错误凭据的错误。一切看起来都很正常,语法正确,但sparkjava抛出了ParseException 我的代码: 我真的不知道出了什么问题。我看了留档,我觉得我的语法很好。你能帮我吗?

  • 问题内容: 我刚刚在大学课程中开始使用node.js和json对象。本周我们的任务之一是创建一些json对象,并将对象的一部分提取到html页面中。我以为自己对此有很好的掌握,但是尝试启动节点时遇到了错误。如果我删除了colleges对象和parse语句,则节点运行正常。 这是我运行“ node index.js”时遇到的错误: 这是我正在使用的代码。 任何有关我做错事情的提示将不胜感激。我的教练

  • 问题内容: 我尝试了以下简单的JavaScript代码: 例如,在Chrome控制台中,这将返回 SyntaxError:意外令牌: 我在JSONLint上尝试了JSON ,它是有效的。 您看到错误了吗? 问题答案: FWIW,改为使用。比。