• 技术文章 >web前端 >前端问答

    cors和ajax的区别是什么

    WBOYWBOY2022-07-01 16:52:27原创356

    cors和ajax的区别是:cors请求时会在HTTP请求头header中添加几个关键字,用于表示当前请求时跨域请求,而ajax请求时不会添加这些关键字;cors是“Cross-origin resource sharing”的缩写,表示跨域资源共享。

    大前端成长进阶课程:进入学习

    本文操作环境:windows10系统、javascript1.8.5&&html5版、Dell G3电脑。

    CORS 和 Ajax 区别:

    CORS 和 Ajax 在发送请求时没有任何区别,都是http请求,唯一区别就是 CORS 请求时,会在 http请求头 header 中添加几个关键词,用来表示当前请求是跨域请求。

    扩展知识:

    CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。我们知道,用浏览器发送 http 请求(ajax)就存在跨域的问题,现在主流的解决跨域方案就是 CORS。

    这里特别强调,我们经常说的跨域只是浏览器的限制,如果我们用脚本发送请求或者通过服务器请求,都不不会有跨域问题,这其中主要原因是浏览器使用门槛非常低,为了防止别有用心的人攻击普通用户,所以引入跨域策略

    CORS简介

    CORS是 W3C 在2014年1月16日发布的一个正式推荐的通信标准,主要解决用户代理的Web应用通过Ajax或者其他机制从另一个站点访问资源、获取数据的问题。

    前提:服务端需要添加支持CORS的相关功能,即设定http的 Access-Control-Allow-Origin 允许的值

    CORS的通信都由浏览器完成,不需要用户参与。默认浏览都是通过Ajax通信,如果浏览器在发送请求时监测到当前请求跨域了,就会自动转成CORS

    CORS的两种请求模式

    浏览器将CORS请求分成两类:简单请求和非简单请求

    简单请求就是使用设定的请求方式请求数据

    非简单请求则是在使用设定的请求方式请求数据之前,先发送一个OPTIONS请求,看服务端是否允许客户端发送非简单请求.只有"预检"通过后才会再发送一次请求用于数据传输

    只要同时满足以下两大条件,就属于简单请求。

    条件一:

    请求方法是以下三种方法之一:

    HEAD

    GET

    POST

    条件二:

    HTTP的头信息不超出以下几种字段:

    Accept
    Accept-Language
    Content-Language
    Last-Event-ID
    Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain

    简单请求

    简单请求就是浏览器直接发送一个CORS请求(ajax请求)。发送之前,浏览器会给本次http请求添加一个请求头 Origin

    上面的头信息中, Origin 字段用来说明,本次请求来自哪个源(协议 + 域名 + 端口)。服务器根据这个值,决定是否同意这次请求。

    非简单请求

    非简单请求就是再发送请求前先发送一个 OPTIONS 请求,提前检测一下请求是否被允许,主要目的是为了防止跨域请求对后台数据的破坏或盗取,简单请求安全性较低,服务器是处理了请求后再返回数据,非简单请求模式下,服务器在提前检测时不应该处理请求。

    【相关教程推荐:AJAX视频教程

    以上就是cors和ajax的区别是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:ajax
    上一篇:vue支持ajax吗 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 简单聊一聊怎么用ajax来进行交互• php中的ajax是什么意思• 聊聊jQuery中的Ajax,详解其主要方法• react ajax开发用什么• jquery和vue中的ajax有什么区别
    1/1

    PHP中文网