一、同源策略
同源策略是浏览器的一个安全功能,不同源的网页脚本在没有明确授权的情况下,不能读写对方资源,所谓同源是指‘协议+域名+端口’三者相同。
1,浏览器的一个安全功能
如果不使用浏览器此安全策略对你没影响
2,同源'协议+域名+端口'
3,不同源的网页脚本在没有明确授权的情况下,不能读写对方资源
二、跨域问题
使用ajax技术(XMLHttpRequest对象),从一个网页去请求另一个网页资源时,违反浏览器同源策略限制,引起的安全问题,称为跨域。
解决跨域方案
方法一:
跨域资源共享cors
+服务端设置,允许其他源访问服务端资源
+nodejs实现:cors跨域资源共享
response.setHeader('Access-Control-Allow-Origin', '*')
方法二:
jsonp技术
方法三:
代理服务器
jsonp技术
jsonp技术基本原理
利用HTML的<script>标签天生可以跨域这一特点,用其加载另一个域的json数据.
加载完成后会自动运行一个回调函数通知调用者。此过程需要另一个域的服务端支持
jsonp技术实现:
jsonp条件:
1、服务端支持
响应数据包裹在一个函数中返回
{
resultCode:1,
resultInfo:{
username:'admin',
age:18
}
}
callBack({
resultCode:1,
resultInfo:{
username:'admin',
age:18
}
})
2、前端
function callBack(data){
}
这种方法缺点就是只支持get请求。
实现方法示例: