JSONP跨域,CORS跨域,Hybrid APP跨域

JSONP

jsonp: function(url, callbackFunc, data) //跨域请求
        {

            var data = arguments[2] ? arguments[2] : {}; //默认参数为空


            if(url != '' && callbackFunc != '') {
                $.ajax({
                    type: 'get',
                    dataType: 'jsonp',
                    url: url,
                    jsonp: "callback",
                    jsonpCallback: callbackFunc,
                    data: data,
                    async: true,
                    success: function(data) {
                        console.log('跨域请求成功');


                    },
                    error: function() {

                        console.log('跨域请求失败');


                    }
                });

            } else
                alert('URL,回调函数不能为空');

        }
function callbackFunc(res)
{

//do something
}
//配合后台返回字符串函数

echo 'callbackFunc({age:18})';//callbackFunc为自己定义的名称, 返回这个之后会在前端调用对应的函数,所以要在前端写响应的函数




CORS跨域

//最简单的写法就是在响应头部增加信息:Access-Control-Allow-Origin: * 
//*默认所有域都可以请求,指定的话:Access-Control-Allow-Origin: http://www.xxxx.com

前端请求按照正常的AJAX请求即可

目前自己随手测过的可以使用的浏览器有:360,IE8+,chrome

Hybrid APP跨域

request: function(url, data, callback, type) {
            xhr = new plus.net.XMLHttpRequest();
            type = arguments[3] ? arguments[3] : 'GET';
            data = arguments[1] ? arguments[1] : '';
            xhr.onreadystatechange = function() {
                switch(xhr.readyState) {
                    case 4:
                        if(xhr.status == 200) {
                            callback(JSON.parse(xhr.responseText));

                        } else {
                            alert("xhr请求失败:" + xhr.readyState);
                        }
                        break;

                }
            }
            switch(type.toUpperCase()) {
                case 'GET':
                    xhr.open(type, url + '?' + data);
                    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                    xhr.send();
                    break;

                case 'POST':
                    xhr.open(type, url);
                    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                    xhr.send(data);
                    break;
            }

        }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值