跨域问题的处理
来源:互联网 发布:美利坚仓储淘宝王 网盘 编辑:程序博客网 时间:2024/06/11 17:03
1、浏览器跨域:
跨域的几种方式:
(1)主域名不同:
http://www.123.com/index.html 调用http://www.456.com/server(123/456)
(2)子域名不同:
http://abc.123.com/index.html 调用http://def.123.com/server(abc/def)
(3)端口号不同:
http://www.123.com:8080/index.html 调用http://www.123.com:8081/server
(4)协议不同:
http://www.123.com/index.html 调用 https://www.123.com/server.(http和https)
(5)127.0.0.1和localhost是属于跨域
以下不属于跨域:
http://www.123.com/index.html 调用http://www.123.com/server.
2、 解决跨域问题:
(1)、使用jsonp,但是jsonp只支持GET请求,不支持POST请求
(2)、使用CORS处理
3、使用CORS处理跨域请求
(1)跨域请求分为简单请求和非简单请求
简单请求:有两个条件,必须同时满足:
a.请求方法是post,get,head
b.请求头不超过一下字段:
Accept
Accept-Language
Content-Language
Last-Event-ID
Content-Type:只限于三个值application/x-www-form-
urlencoded、multipart/form-data、text/plain
非简单请求:
Content-Type是application/json或者请求是put请求
(2)对于简单请求和非简单请求处理器的处理方式:
a.对于简单请求:
当浏览器发现本次请求是简单请求,就会在请求头里面自动加上origin字段,表示
源(协议+域名+端口),服务器对该请求处理,如果origin表示的源不在许可范围
内,会返回一个正常的HTTP响应,浏览器发现服务器没有返回Accept-Control-
Allow-Origin字段,就会抛出错误,被XMLHttpRequest的onerror捕获,当浏览器
正常返回时,会多出几个字段:
Access-Control-Allow-Origin:Access-Control-Allow-Credentials: trueAccess-Control-Expose-Headers:Content-Type: text/html; charset=utf-8
b.对于非简单请求:
当浏览器发现本次请求是非简单请求,会先发送一个"预检"请求给服务器,询问该
网页所在的域名是否在许可范围内,只有得到肯定答复,浏览器才会继续发送
XMLHttpRequest请求,当发送请求后,服务器的处理就和简单请求一样了
阅读全文
0 0
- 跨域问题的处理
- ajax跨域问题的处理
- 关于服务器处理跨域的问题
- java处理跨域请求的问题
- AJAX跨域问题处理
- 过滤器处理跨域问题
- AJAX跨域问题处理
- ajax处理跨域问题
- weblogic 跨域问题处理
- jsonp 跨域问题处理
- js跨域问题处理
- web处理跨域问题
- 跨域问题和处理跨域的方法
- html5 新特性ajax跨域的问题和处理
- HTML5之Ajax跨域的问题和处理
- 003 - ajax跨域的问题和处理
- java项目跨域问题的简单处理
- 关于springmvc处理跨域请求的问题
- 这可能是最好的性能优化教程(二)
- SpringCloud Eureka自我保护机制
- vue中使用滚动到列表底部
- Bootstrap的基本使用方法介绍
- Stories of The Simpsons 苹果应用发布
- 跨域问题的处理
- js 匿名函数自调用
- DoubleFilter调试记录
- 【第三方插件】有意思
- kafka+zookeeper安装
- oracle测试数据安装是否成功
- MongoDB学习笔记(三)--MongoDB的C#驱动的基本使用
- android 蓝牙BLE 开发
- elasticsearch学习笔记-安装与配置