个人学习记录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();
}
原文地址:https://www.cnblogs.com/huliang56/p/5735490.html