跨域
什么是? 资源跳转(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(); });