ECShop动静分离transport.js get jsonp跨域对接

2016-09-07 22:02 来源:www.chinab4c.com 作者:ecshop专家

ECShop transport.js定义了Ajax Transport
 
 
/* 定义两个别名 */
var Ajax = Transport;
Ajax.call = Transport.run;
其中run方法实现了类似jQuery $.ajax的功能但缺少了对jsonp方式的支持
 
 
 
  /* *
  * 调用此方法发送HTTP请求。
  *
  * @public
  * @param   {string}    url             请求的URL地址
  * @param   {mix}       params          发送参数
  * @param   {Function}  callback        回调函数
  * @param   {string}    ransferMode     请求的方式,有"GET"和"POST"两种
  * @param   {string}    responseType    响应类型,有"JSON"、"XML"和"TEXT"三种
  * @param   {boolean}   asyn            是否异步请求的方式
  * @param   {boolean}   quiet           是否安静模式请求
  */
  run : function (url, params, callback, transferMode, responseType, asyn, quiet)
可以在第一个get方法判断入口前新增下列代码:
 
 
 
if (transferMode === "GET")
{
  if(params.indexOf("?") == -1){
    if(params){
     params+= "&"; 
    }
    params += "callback=?";
  }
  return $.getJSON(url, params, callback);
}
巧妙的将原来ajax get方法对接上jquery script jsonp实现
排除一些自制的特殊调用:比如callback的第二个参数以及this的深度使用
其它上层Ajax.call相关调用就不用一一更新了
(责任编辑:chinab4c)