个人学习记录2:ajax跨域封装

/**
 * 跨域提交公用方法
 * @param param  参数
 * @param url  跨域的地址
 * @param callFun 回调函数  callFun(data)
*/
function jsonpCall(param, url, callFun) {
    $.ajax({
         async:false,
         type:"GET",
         url:url,
         dataType:"jsonp",
         jsonp:"callback",
         data:$.param(param, true),
         success:callFun,
         error:function(xhr) {
            alertError("~error~:" + url);
         }
    });
}

/**
 * iframe跨域提交大数据
 * @param url 跨域地址
 * @param arr [{'name':'name','val':'val'},{'name':'name1','val':'val1'},{'name':'if_return_param','val':'xxx'}] 格式的数组
 *        arr中,默认有一个参数是回带的,if_return_param,如果有值就回带
 * @param callFunName 回调方法的名字,必须当前页面能够访问
 */
function iframeCall(url, arr, callFunName) {
    var _html = "";
    _html += ("<form id='iframeSub' method='post' action='" + url + "'>");
    for(var _i in arr) {
        _html += ("<textarea name='" + arr[_i].name + "'>" + arr[_i].val + "</textarea>");
    }
    _html += ("<textarea name='callFunName'>" + callFunName + "</textarea>");
    _html += "</form>";

    var i_div = document.createElement("div");
    i_div.innerHTML="<IFrame id=\"i_frame\" name=\"i_frame\" width=\"1px\" height=\"1px\" style=\"display:none\"></IFrame>";
    document.body.appendChild(i_div);
    document.getElementById("i_frame").contentWindow.document.body.innerHTML = _html;
    document.getElementById("i_frame").contentWindow.document.getElementById("iframeSub").submit();
}

 

posted @ 2016-08-04 09:44  huliang56  阅读(221)  评论(0编辑  收藏  举报