ajax跨域问题(jsonp(GET提交)以及 CORS (GET POST提交 毫无问题))

前端之家收集整理的这篇文章主要介绍了ajax跨域问题(jsonp(GET提交)以及 CORS (GET POST提交 毫无问题))前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一、通过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){
		
		 }
	});
原文链接:https://www.f2er.com/ajax/163872.html

猜你在找的Ajax相关文章