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相关调用就不用一一更新了
(责任编辑:好模板) |