cors和ajax的区别是什么

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

cors和ajax的区别是什么

本文操作环境: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的头信息不超出以下几种字段:

AcceptAccept-LanguageContent-LanguageLast-Event-IDContent-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain

登录后复制

简单请求

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

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

非简单请求

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

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

以上就是cors和ajax的区别是什么的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2928161.html

(0)
上一篇 2025年3月11日 19:33:24
下一篇 2025年3月3日 04:44:57

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • ajax默认是异步请求吗

    ajax默认是异步请求;ajax中可以根据async值的不同来判断是否是异步请求,若async的值为false,则表示ajax请求为同步,若async的值为true,则表示ajax请求为异步,而默认情况下async的值是“true”,因此a…

    2025年3月11日
    200
  • ajax请求时post和get的区别是什么

    区别:1、get把参数数据队列加到提交表单的ACTION属性所指的URL中,而post是通过“HTTP post”机制,将表单内各个字段与其内容放置在“HTML HEADER”内一起传送到ACTION属性所指的URL地址;2、get方式,服…

    2025年3月11日
    200
  • jquery ajax报错403怎么办

    jquery ajax报错403是因为前端和服务器的域名不同而触发了防盗链机制,其解决办法:1、打开相应的代码文件;2、通过“public CorsFilter corsFilter() {…}”方法设置允许的域即可。 本教程操…

    2025年3月11日 编程技术
    200
  • jquery ajax utf-8 乱码怎么办

    jquery ajax utf-8乱码的解决办法:1、设置contentType的编码为“utf-8”,代码为“contentType: “application/x-www-form-urlencoded;charset=ut…

    2025年3月11日
    200
  • ajax传递中文乱码怎么办

    ajax传递中文乱码的解决办法:1、设置统一的编码方式;2、服务器端编码;3、客户端解码;4、设置HTTP响应头;5、使用JSON格式。详细介绍:1、设置统一的编码方式,确保服务器端和客户端使用相同的编码方式,通常情况下,UTF-8是一种常…

    2025年3月11日
    200
  • ajax有哪些限制

    ajax的限制有:1、同源策略,Ajax请求只能发送到与当前页面具有相同协议、域名和端口号的URL;2、异步通信,在处理Ajax请求时,开发者需要处理回调函数或使用Promise等异步编程技术;3、对搜索引擎的可索引性,搜索引擎爬虫可能无法…

    2025年3月11日
    200
  • ajax有哪些组件

    ajax的组件有XMLHttpRequest对象、JavaScript、XML、JSON、HTML、CSS和jQuery等等。详细介绍:1、XHR对象,用于在后台与服务器进行数据交换;2、JavaScript,负责处理从服务器返回的数据,并…

    2025年3月11日
    200
  • ajax请求的方法有哪些

    ajax请求的方法有XMLHttpRequest对象、jQuery的ajax方法、fetch方法、axios库、Vue.js的axios方法、Angular的HttpClient模块等等。详细介绍:1、XMLHttpRequest对象,可以…

    2025年3月11日
    200
  • ajax的参数有哪些

    ajax的参数有url、type、async、timeout、cache、username、password、responseType、headers、data、success、error、beforeSend和complete等。详细介绍…

    2025年3月11日
    200
  • ajax有哪些框架

    ajax的框架有jQuery、Axios、Fetch API、Ember.js、Backbone.js、Angular和React等。详细介绍:1、jQuery,是最流行的JavaScript库之一,它提供了简洁明了的API来处理AJAX请…

    2025年3月11日
    200

发表回复

登录后才能评论