jsonp 是否依赖于服务器支持,以便返回正确的响应?
我收到了这个请求,我得到的是js错误。
$.getJSON('myURL?q=keyword&callback=?', function(data){console.log(data)});
甚至角度jsonp方法都不起作用:
http://jsfiddle.net/neoswf/tckGG/5/
console>> js错误:Uncaught SyntaxError: Unexpected token :
jsonp是否依赖于某些服务器实现?
解决!!!
这个问题与其他问题不同,因为没有其他答案谈论代理解决方案。
答案 0 :(得分:3)
服务器不返回JSONP,它返回JSON。 JSONP结果是函数调用中包含的JSON结果。
示例:
callback873659823745({"destino":"http://...", ... })
如果无法使服务器返回JSONP,则需要一个请求服务的代理服务器,并返回包装为JSONP结果的JSON结果。
碰巧的是,我刚刚在jsonp.guffa.com设置了这样一个代理,如果你没有能力自己设置代理,你可以使用它。
答案 1 :(得分:2)
是的,jsonp需要服务器支持。服务器需要将json包装在json * P *的“填充”部分中,这是客户端在响应数据周围定义和执行的方法。
答案 2 :(得分: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 ...})