首页 > 网站 > 建站经验 > 正文

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

2024-04-25 20:44:03
字体:
来源:转载
供稿:网友

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相关调用就不用一一更新了

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表