同源策略
要求访问的地址必须协议、端口号、域名相同
*防止恶意的窃取数据,禁止不同域直接进行js交互
解决跨域的方法:
1.document.domain+iframe 执行跨域
var iframe=document.getElementById("iframe")
var win=iframe.contentWindow
iframe.contentWindow.document
2.window.name+iframe 解决跨域
window.name="名字"
window.location="路径"
另一个页面直接获取window.name
3.location.hash+iframe 解决跨域
var iframe=document.getElementById("iframe")
location.hash
4.window.postMessage解决跨域
window.postMessage("发送内容")
另一个页面
window.onmessage=function(e){}
5.web sockets
var s=new WebSocket("路径")
s.send("发送内容")
另一个页面
window.onmessage=function(e){}
6.jsonp与ajax链接
function fun(res){}
script.callback=fun
7.跨域资源共享(CORS)
var xdr=new XDomainRequest()
xdr.open(get,路径)
xdr.send()
8.nginx服务器
需要在服务器配置代理路径,修改服务器的配置文件
conf文件
server{
listen 8080
server_name www.baidu.com
location {......}
}
vue 解决跨域 proxy
在项目根目录下定义一个vue.config.js文件
在文件下定义代理的地址:
module.exports={
devServer:{
proxy:{
'/api':{
target:"https://api.isoyu.com/",
changeOrigin:true,
ws:true,
sucure:true,
pathRewrite:{
'^/api':''
}
}
}
}
}
使用的文件中:
import axios from 'axios'
axios.defaults.baseURL="/api"
SVN与Git区别?
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,所以首先要从中央服务器哪里得到最新的版本,需要把自己修改的推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。
Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,需把各自的修改推送给对方,就可以互相看到对方的修改了。