前端跨域问题及个人解决方法

跨域

什么是? 资源跳转(a链接,重定向,表单提交),资源嵌入(dom标签),脚本请求(js发起的ajax请求 dom和js对象的跨域操作等)

判断是否为跨域:referer.getHostName();判断是否是一个域名

同源策略:协议相同 域名相同 端口相同 

同源策略的目的,是为了保护用户信息的安全,防止恶意的网络切取数据。

目前来说,如果非同源,有以下三种行为受到限制:

①cookie、localstorage、indexDB无法读取 ②DOM无法获得 ③Ajax请求不能发送

如何解决跨域问题:

1.jsonp

在script标签内添加一个callback参数

2.请求头 

app.all('*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
    res.header("X-Powered-By",' 3.2.1');
    if(req.method=="OPTIONS") res.send(200);/*让options请求快速返回*/
    else  next();
});

猜你喜欢

转载自blog.csdn.net/JOEHONV/article/details/81561784