1.什么是跨域?
跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制,
所谓同源是指,域名,协议,端口均相同
举例http://baidu.com:8080
1.http 协议
2.baidu.com 域名
3.80 端口
2.如何解决
1jsonp跨域
jsonp跨域是JavaScript设计模式中的一种代理模式。在html页面中通过相应标签从不同域名下加载静态资源文件是被浏览器允许的,一般,我们可以动态的创建script标签,再去请求一个带参网址来实现跨域通信
// 原生的实现方式
let script = document.createElement('script');
script.src = 'http://www.baidu.com';
document.body.a(script)
function callback(res) {
console.log(res)
}
2.CORS资源共享(在header中设置请求头)
var express = require('express');
var app = express();
var allowCrossDomain = function (req, res, next) {
res.header('Access-Control-Allow-Origin', 'http://localhost:8888');
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header('Access-Control-Allow-Headers', 'Content-Type');
next();
}
app.use(allowCrossDomain);