1、什么是跨域请求
浏览器均默认开启了同源策略,它指Ajax请求所在的页面和被请求的页面在域名、端口均相同才能被访问,否则会提示如下错误:
XMLHttpRequest cannot load xxxxxxx is not allowed by
Access-Control-Allow-Origin.
2、JSONP解决方案
2.1 JSONP原理
JSONP 不是真正的AJAX请求,是利用script的src可可以跨域的特性,动态加载一段script脚本,脚本中包含需要的信息。
2.2 基础代码实现
html源代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jsonp跨域</title>
<script type="text/javascript">
function callbak(rs){
alert(rs.data);
}
</script>
<script src="http://127.0.0.1:8080"></script>
</head>
<body>
</body>
</html>
node js 服务器代码:
//调用http模块
var http = require('http');
var server = http.createServer(function (request, response) {
response.writeHead(200, {
'Content-Type': 'application/javascript'
});
response.write("callbak({'data':'jsonp'});");
response.end();
});
server.listen(8080);
//打印日志
console.log('Http