gpt4 book ai didi

jquery - json 未捕获的语法错误 : Unexpected token :

转载 作者:IT老高 更新时间:2023-10-28 12:43:39 28 4
gpt4 key购买 nike

尝试调用并检索一个非常简单的一行 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

这是原始请求:

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
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

这是原始响应:

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 会验证。

任何想法为什么我不能得到这个错误并且我从来没有成功回调?

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

EDIT 2 - 这个 URL 工作正常 'http://api.wunderground.com/api/8ac447ee36aa2505/geolookup/conditions/q/IA/Cedar_Rapids.json' 我注意到它返回为TYPE: text/javascript 和 Chrome 没有抛出 Unexpected Token。我已经测试了其他几个 url,唯一不抛出 Unexpected Token 的是 wunderground,它以 TYPE: text/javascript 返回。

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

最佳答案

您告诉 jQuery 期待 JSONP 响​​应,这就是为什么 jQuery 在 URL 中添加 callback=jQuery16406345664265099913_1319854793396&_=1319854793399 部分(您可以在请求的转储中看到这一点)。

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

{"red" : "#f00"}

而 jQuery 期待这样的事情:

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

如果您确实需要使用 JSONP 来绕过同源策略,那么提供 colors.json 的服务器需要能够实际返回 JSONP 响应。

如果同源策略对您的应用程序来说不是问题,那么您只需将 jQuery.ajax 调用中的 dataType 修复为 json 而不是 jsonp.

关于jquery - json 未捕获的语法错误 : Unexpected token :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7936610/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com