jQuery. getJSON 跨域访问

假设需要访问的外网JSON数据接口URL为:http://xxx.com/api/test

取得的JSON数据格式为: 
{"id":"1","content":"this iscontent"}


按照JSONP技术要求进行改造(需要服务端配合):
1、上面的访问URL改为: "http://xxx.com/api/test?callback=?"  (即增加一个自定义参数 jsoncallback )

2、getJSON方法调用方式:  
$.getJSON("http://xxx.com/api/test?callback=?", function(jsonObject){ // 对返回的json的处理代码 }); 
    其中参数名 callback 可与服务端开发人员进行协商定义,参数值 ? 将由jQuery自动替换为后面定义的匿名function回调函数的内部名称
    

3、请求发出后,服务端接收到一个正常的JSON接口访问请求,包含一个参数 callback ,参数值为 callbackFunctionName(假设值)
    利用参数值 callbackFunctionName 对正常返回的JSON字符串进行二次包裹,格式如下(注意包含小括号):

如: echo $_GET['callback']."(".$json.")";
输出内容:callbackFunctionName({"id":"1","content":"this iscontent"})

4、前端页面中jQuery接收到上面的返回后,调用js解释器进行解析,执行callbackFunction233函数。

修改时间 2018-06-06

真诚赞赏,手留余香
赞赏
随机推荐
如何实现瀑布流
CSS自定义字体font-face
filezilla server FTP 安装报错 "could not load TLS network. Aborting start of administration interface"
javascript加载顺序LABjs
Koa 通过代理获取客户端 IP
JavaScript中函数参数的值传递和引用传递
Naxsi 白名单设置
Javascript游戏中的“透视”
Android工程图片资源命名规则
可用于thinkphp5 r4第三方分页类