ajax跨域问题(jsonp(GET提交)以及 CORS (GET POST提交 毫无
发布时间:2020-12-16 02:08:46 所属栏目:百科 来源:网络整理
导读:一、通过jsonp get提交: 服务端: ?php $data = array( "name"=$_GET['name'],"age"=25,); echo $_GET['callback']."(".json_encode($data).")"; //相当于:echo 'getName({"name":"小妹子","age":25})';// 必须加前缀哦,是从客户端传过来的方法名? ajax 客
一、通过jsonp get提交: 服务端: <?php $data = array( "name"=>$_GET['name'],"age"=>25,); echo $_GET['callback']."(".json_encode($data).")"; //相当于:echo 'getName({"name":"小妹子","age":25})';// 必须加前缀哦,是从客户端传过来的方法名 ?> ajax 客户端: 当前文件为:http://www.xiaoqiang.com/index.html $.ajax({ url:'http://www.xiaoqiang2.com/getData.php',//跨域到http://www.xiaoqiang2.com,另,http://xiaoqiang.com也算跨域 type:'GET',//jsonp 类型下只能使用GET,不能用POST,使用post提交会造成有些浏览器获取不到返回 例如firebug dataType:'jsonp',//指定为jsonp类型 data:{"name":"小美人"},//数据参数 jsonp:'callback',//服务器端获取回调函数名的key,对应后台有$_GET['callback']='getName';callback是默认值 jsonpCallback:'getName',//回调函数名 success:function(result){ //成功执行处理,对应后台返回的getName(data)方法。 $("#myData").html('你妹子: '+result.name+'的年龄:' '+result.age+'');//myData是一个div自己加就好了 },error:function(msg){ //执行错误 } }); 二、cors 处理post 和get 跨域提交方法 主要是服务端加上头: header('Access-Control-Allow-Origin:*');// *表示任何域名都可以提交过来,如果加上域名则表示只允许某个域名提交header('Access-Control-Allow-Methods:POST,GET');header('Access-Control-Allow-Credentials:true'); 服务端输出代码: header('Access-Control-Allow-Origin:*'); header('Access-Control-Allow-Methods:POST,GET'); header('Access-Control-Allow-Credentials:true'); echo "{"result":"ok"}";exit; ajax客户端提交代码: $.ajax({ type: "POST",url: "http://www.xiaoqiang.com/count/service.php",dataType: "json",data:{name:a,phone:b},success: function(data){ } }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |