A产品是新项目,卖力编写JS接口文件,域名是localhost.testlink.com;
B产品引入JS接口文件,域名是localhost.xyh.com。
1、在A产品里编写JS接口文件代码。
var src = $('script[id=certcenter]').attr('src');
这段代码的浸染是通过id来获取B产品引入js时的src属性字符串,从而获取参数。
if(isUndefined(src)){throw new Error(\"大众error tips from certCenter:js引入失落败!
\公众);}
为了保险起见,如果B产品未引入或者id不对,将抛出非常。
var param = GetSrcParam(src);
//从引入的js获取参数function GetSrcParam(src) {//截取src中\公众?\"大众符后的字串var index = src.lastIndexOf(\"大众?\"大众);var url = src.substr(index+1,src.length);var theRequest = new Object();strs = url.split(\"大众&\公众);for(var i = 0; i < strs.length; i ++) {theRequest[strs[i].split(\"大众=\公众)[0]] = unescape(strs[i].split(\公众=\"大众)[1]);}return theRequest;}
这是截取src字符串里的参数。
//判断参数是否精确if(isUndefined(account)){throw new Error(\"大众error tips from certCenter:参数account未传入!
\"大众);}if(isUndefined(token)){throw new Error(\公众error tips from certCenter:参数token未传入!
\公众);}if(isUndefined(dleft) || isNaN(dleft)){dleft = 10;}if(isUndefined(dtop) || isNaN(dtop)){dtop = 10;}if(isUndefined(width) || isNaN(width)){width = 200;}if(isUndefined(height) || isNaN(height)){height = 80;}
校验参数是否有传入。B产品必传的参数是用户账户account和加密校验token。
$.ajax({type: 'GET',cache: false,url:\"大众http://localhost.testlink.com/assess/GetAssess/call\公众,data:{\"大众account\"大众:account,\"大众token\公众:token},dataType: \"大众jsonp\"大众,jsonp: \公众callback\"大众,jsonpCallback: \"大众success_jsonpCallback\公众,success:function(result){var status = result.status;var msg = result.msg;var data = result.data;if(status == 1){var count = data.count;var return_url = data.url;var content = \公众<a target='_blank' href='\"大众+return_url+\公众' id='cert_content'>您新来了<b>\公众+count+\"大众</b>个</a>\"大众;console.log(content);$(document.body).append(content);}else{console.log(\"大众error tips from certCenter:\公众+msg);}},error:function () {console.log(\公众error tips from certCenter:数据要求失落败,请稍后重试!
\"大众);}});
通过jsonp的ajax,要求A产品的PHP脚本。
A产品的PHP脚本部分代码如下:
以上代码是吸收ajax传过来的参数以及安全性校验。jsonp返回的方法是:先将内容json_encode,并用括号包起来,
然后连同jsonp的callback方法名一起输出。
如果PHP脚本处理成功,将返回status为1的内容。
然后js那边吸收返回的内容,处理后进行展示。
B产品引入JS文件的方法是:
<script id=\"大众certcenter\公众 src=\公众http://localhost.testlink.com/static/js/certcenter.js?account=123@xyh.com&token=1e67ce6da2888ecebe20b73415725e46&dleft=200&dtop=100&width=400&height=80\"大众></script>
浏览器里打开B产品的这个页面,输出如下图:
通过上图知道:确实是从域名localhost.xyh.com来要求域名localhost.testlink.com的数据。
不知道以上教程有没有写清楚,如果有任何疑问和建议,欢迎评论提问!