美文网首页
ajax跨域的方法

ajax跨域的方法

作者: 小慕先森 | 来源:发表于2017-08-17 11:12 被阅读0次

一、传统的ajax方法

1、js代码

$("#ajax").click(function(){  
   $.ajax({  
     type: "POST",  
     url: "http://manual.51yip.com/test2.php",  
     data: 'name=ajax',  
     dataType:"json",  
     success: function(data){  
       $('#Result').text(data.name);  
     }  
   });  
 });  

2、php代码

<?php  
header("Access-Control-Allow-Origin:http://blog.51yip.com");    //允许blog.51yip.com提交访问  
//header("Access-Control-Allow-Origin:*");    //允许任何访问  
echo json_encode($_POST);  

二、ajax jsonp

1、js代码

$("#jsonp").click(function(){  
     $.ajax({  
       url: 'http://manual.51yip.com/test1.php',  
       data: {name: 'jsonp'},  
       dataType: 'jsonp',  
       jsonp: 'callback',      //为服务端准备的参数  
       jsonpCallback: 'getdata',   //回调函数  
       success: function(){  
         alert("success");  
       }  
   });  
 });  
  
function getdata(data){  
    $('#Result').text(data.name);  
}  

2、php代码

<?php  
 if(isset($_GET['name']) && isset($_GET['callback']))   //callback根js端要对应,不然会报错的  
 {  
 echo $_GET['callback']. '(' . json_encode($_GET) . ');';   //格式固定的,为什么这样,不清楚  
 }  
?>  

三、$.getJSON

$("#getjson").click(function(){  
 $.getJSON('http://manual.51yip.com/test1.php?name=getjson&callback=?', function(data){  //没有回调函数,直接处理  
 $('#Result').text(data.name);  
 });  
});  

四、$.getScript

$("#getscript").click(function(){  
 $.getScript('http://manual.51yip.com/test1.php?name=getscript&callback=getdata');  //回调函数根jsonp一样  
});  

相关文章

网友评论

      本文标题:ajax跨域的方法

      本文链接:https://www.haomeiwen.com/subject/oiugrxtx.html