学习总结:前端跨域请求的解决办法——JSONP(很好)
- jQuery.getJSON(??"http://www.yourdomain.com/jsonp/ticker?symbol=IBM&callback=?",???function(data)?{??????alert("Symbol:?"?+?data.symbol?+?",?Price:?"?+?data.price);??}??);??
其中回调函数名”callback”为”?”,即不需要用户指定,而是由jquery生成,互调函数也不需要单独定义,而是以参数的形式紧接在URL之后,URL中还可以附带供数据查询用的其他参数,如上例中的”symbol=IBM”
淘宝的前端JS库貌似是KISSY,附上KISSY中JSONP方法的文档地址:http://docs.kissyui.com/kissy/docs/ajax/index.html#method_jsonp
可用的实例见附件:jquery_jsonp.html
两个实例中请求的JSONP服务的URL均为:
http://www.geonames.org/postalCodeLookupJSON?postalcode=10504&country=US&callback=?
可以把callback参数先去掉,在浏览器中看一下返回的json数据。
1、跨域的ajax请求无法实现
2、浏览器允许动态js脚本注入
3、JSONP服务需要第三方提供相应的JSONP服务
4、Jquery和kissy已经为我们做了很多