JSONP跨域,CORS跨域,Hybrid APP跨域
发布时间:2020-12-16 18:51:38 所属栏目:百科 来源:网络整理
导读:JSONP jsonp: function (url,callbackFunc,data) //跨域请求 { var data = arguments [ 2 ] ? arguments [ 2 ] : {}; //默认参数为空 if (url != '' callbackFunc != '' ) { $.ajax({ type: 'get' ,dataType: 'jsonp' ,url: url,jsonp: "callback" ,jsonpCal
JSONPjsonp: 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;
}
} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |