ajax 跨域问题 new
方法一:
前台页面js代码:
$.getJSON('http://www.h5clubs.com/rec.php?c=abc&callback=?', jsondata, function (data) { console.log(data); } );
或者用ajax
$.ajax({ type: 'GET',//只能是get方式 url: 'http://www.h5clubs.com/rec.php', data: { c: 'rec' }, dataType: 'JSONP', jsonp: 'callback', //服务器端获取回调函数名的key,对应后台有$_GET['callback']='getName';callback是默认值 jsonpCallback: 'getName', //回调函数名, jsonp与 jsonpCallback 可以省略,jsonpCallback如果不写 刚为jquery默认添加的一个值 success: function (data) { //成功执行处理,对应后台返回的getName(data)方法。 console.log(data); console.log(data.flag); } });
后台php代码 :
$c = $_GET['c']; $str = array(c=>$c, flag=>'success'); $str2 = array(c=>$c, flag=>'fail'); if($c){ //echo json_encode($str); echo $_GET['callback']."(".json_encode($str).")"; //等价:echo 'getName('.json_encode($str).')'; }else{ //echo json_encode($str2); }
方法二:
前台代码:
$.ajax({ type: 'post',//post,get都可以 url: 'http://www.h5clubs.com/rec.php', data: {c:'rec'}, dataType: 'json', success: function(data){ console.log(typeof data); console.log(data.flag); } });
后台php代码:
header("Access-Control-Allow-Origin: *"); $c = $_GET['c']; $str = array(c=>$c, flag=>'success'); $str2 = array(c=>$c, flag=>'fail'); if($c){ echo json_encode($str); }else{ echo json_encode($str2); }