跨域问题
1.跨越的固定报错格式
2.什么是跨域
浏览器在使用ajax时,如果请求的接口地址,和当前打开的页面地址,不同源称之为跨域。
- ajax:浏览器只有使用ajax发送请求才会出现跨域。 href属性与src属性不会出现跨域
- 接口地址: ajax请求的url
- 打开的页面:当前页面的window.location.href
- 不同源:浏览器使用ajax,向不同源的接口发送请求,称之为跨域访问
为什么要有同源与不同源
- 出于安全考虑,浏览器不允许,页面向不同源的接口请求数据,因为如果接口和网页不同源,浏览器认为是2个不同的服务器,
- 不同的服务器中内容是不可控的,不允许访问了
解决跨域问题
跨域是前端工作中不可避免的问题:我们经常会出现请求不同源接口的情况,为了能够获取数据,解决跨域的问题方案也有很多,但是常用的就两种
-
第一种: CORS
目前的主流方案,也是最简单的方案直接让后端设置响应头,允许资源共享就ok.
-
第二种: JSONP
曾经的跨域杀手,专治各种跨域问题。现在慢慢的淡出历史舞台
PS:面试官特别喜欢问这个,因为这个有一定的技术难度, 也能体现-个人的实际开发经验
jsonp是前后端来配合使用的.
使用原理:通过动态创建script标签,通过script标签的src请求没有跨域限制来获取资源