2

可能重复:
json Uncaught SyntaxError: Unexpected token :

jsonp是否依赖服务器支持才能返回正确的响应?

我收到了这个请求,我得到的是 js 错误。

$.getJSON('myURL?q=keyword&callback=?', function(data){console.log(data)});

甚至 angular jsonp 方法也不起作用:

http://jsfiddle.net/neoswf/tckGG/5/

控制台>> js错误Uncaught SyntaxError: Unexpected token :

jsonp 是否依赖于某些服务器实现?

解决了!!!

这个问题与其他问题不同,因为没有其他答案谈到代理解决方案。

4

3 回答 3

3

服务器不返回 JSONP,而是返回 JSON。JSONP 结果是包装在函数调用中的 JSON 结果。

例子:

callback873659823745({"destino":"http://...", ... })

如果不能让服务器返回 JSONP,则需要一个代理服务器来请求服务并返回包装为 JSONP 结果的 JSON 结果。

碰巧的是,我不久前在jsonp.guffa.com上设置了这样一个代理,如果您自己没有能力设置一个,您可以使用它。

演示:http: //jsfiddle.net/Guffa/tckGG/6/

于 2012-10-10T22:56:46.930 回答
2

是的,jsonp 需要服务器支持。服务端需要将json包装在json* P *的“padding”部分,这是客户端围绕响应数据定义和执行的方法。

于 2012-10-10T22:41:36.107 回答
2

因为您的 Url 没有返回 JSONP。它正在返回 JSON。

{"destino":"http://www.buscape.com.br","palavras":["tv lcd 32","tv led","tv led 32","tv led 40","tv","tv led 42","tv lcd","tv lcd 42","tv lcd 26","tv 3d","tv lcd 40","tv 32","tv led 46","tv 42","tv lcd 22","tv led 32 full hd"]}

例如,如果是 JSONP,请检查flickr的返回值。它返回

callbackToExecute({... JSON Object ...})
于 2012-10-10T22:42:01.280 回答