[JavaScript] jsonp

由于同源策略的限制,ajax不能发送跨域请求。
即,www.google.com域内的js,无法用ajax请求不是www.google.com域内的服务器。

如果一定要发送跨域请求,可以尝试动态创建script标签
因为是可以发送跨域请求的。

为了支持跨域请求,服务器端需要做调整,
并不是直接返回json,而是返回可用的js代码

例如:
如果Get请求:http://jsonp.google.com/Home/TestJsonp?callback=f
返回:f(1)

则,
就相当于:


其中,f是已经定义好的window.f方法。
这样就完成了跨域调用,把数据“1”传递过来了。

注:
(1)jsonp服务只需要支持Get请求即可,因为script标签无法发起Post请求。
(2)jsonp服务需要确定返回的回调函数名,使用callback来标记只是办法之一。

你可能感兴趣的:([JavaScript] jsonp)