demo.html(前端JQuery Ajax跨域名访问):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript" src='jquery/jquery-3.0.0.min.js'></script>
</head>
<body>
<h1>区域1的页面</h1>
<input type="button" name="" οnclick='sendAjax()' value="jquery区域请求">
</body>
</html>
<script type="text/javascript">
// 自定义的一个函数
function myFn(data) {
console.log("myFn---"+data);
}
function sendAjax(){
$.ajax({ //Ajax(jsonp)请求就是利用<script>标签的src属性
url:'http://www.不同域名.com/demo.php', // 请求不同的域名
type:'get', // 也可以根据需求用post
dataType: 'jsonp', // dataType指定为jsonp, 可以跨域名请求
jsonpCallback:"myFn", // 会自动在域名后拼装callback (get方式请求) http://www.不同域名.com/demo.php?callback=myFn
success:function(data){ // 如果不写jsonpCallback,默认调用success方法。
console.log(data);
}
})
}
</script>
不同域名.com/demo.php(请求不同域名的服务端):
<?php
$callBack = $_GET['callback'];
$arr = array(
'name' =>'西兰花' ,
'color' =>'red'
);
echo $callBack."(".json_encode($arr).")"; // echo myFn("{name:'西兰花',color:'red'}");
?>
demo.html(底层实现原理,需要后端配合):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
function myFn(data){
console.log(data);
}
</script>
<!-- 通过script标签的src属性实现跨域名访问(所有html标签的src属性都可以跨域名访问) -->
<script type="text/javascript" src='http://www.不同域名.com/demo.php?callback=myFn'></script>
</head>
<body>
<h1>区域1的页面_jsonP演示</h1>
</body>
</html>