跨域和ajax

本文详细介绍了AJAX的基础知识及其实现方法,并探讨了跨域问题的多种解决方案,包括JSONP等技术。此外,还对比分析了cookie、sessionStorage和localStorage的不同应用场景及其优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ajax

基础(面试)

  1. 手动编写一个ajax,不依赖第三方库
  2. 跨域的几种实现方式

知识点:

  • XMLHTTPRequest
  • 状态码说明
  • 跨域

 

状态码说明:

readyState

  • 0 (未初始化)还没有调用send()方法
  • 1 (载入)已调用send()方法,正在发送请求
  • 2 (载入完成)send()方法执行完成,已经接收到全部响应内容
  • 3 (交互)正在解析响应内容
  • 4 (完成)响应内容解析完成,可以在客户端调用了

status

  • 2XX 表示成功请求处理,比如200
  • 3XX 需要重定向,浏览器直接跳转
  • 4XX 客户端请求错误,如404(客户端发来的地址客户端没有定义,找不到)
  • 5XX 服务器端错误

 

 

跨域

1.什么是跨域

浏览器有同源策略,不允许ajax访问其他域接口

跨域条件:协议、域名、端口,有一个不同就算跨域

 

跨域的几种实现方式

  • JSONP
  • 服务器端设置http header

 

2.可以跨域的三个标签

但是有三个标签允许跨域加载资源

  • <img src=xxx>
  • <link src=xxx>
  • <script src=xxx>

 

三个标签的场景

  • <img>用于打点统计,统计网站可能是其他域()注意:img标签可以兼容任何浏览器
  • <link><script>可以使用CDN,CDN的也是其他域
  • <script>可以用于JSONP

跨域注意事项:

  • 所有的跨域请求都必须通过信息提示方允许
  • 如果未经允许即可获取,那是浏览器同源策略出现漏洞

 

JSONP 实现原理

例子:<script src="http://coding.m.imooc.com/api.js ">的时候,慕课网不一定

真正存在api.html文件,但是服务器可以根据请求,自己拼一个js文件或者一个js格式的文件返回

 

服务器端设置http header(了解,后端实现)

  • 另外一个解决跨域的简洁方法,需要服务器端来做
  • 但是作为交互方,我们需要知道这个方法
  • 是将来解决跨域问题的一个趋势

 

存储

请描述一下cookie,sessionStorage和localStorage的区别?

cookie

  • 本身用于客户端和服务器端通信
  • 但是它有本地存储的功能,于是就被“借用”
  • 使用document.cookie=... 获取和修改即可

cookie用于存储的缺点

  • 存储量太小,只有4KB
  • 所有http请求都带着,会影响获取资源的效率
  • API简单,需要封装才能用document.cookie=...

 

sessionStorage和localStorage

  • HTML5专门为存储设计,最大容量5M
  • API简单易用
  • localStorage.setItem(key,value); localStorage.getItem(key);适合数据存储和读取

区别

  • 如果浏览器关了,会话清理,那么 sessionStorage会清理,但是localStorage即使浏览器关闭也不会被清理掉,所以localStorage的应用场景较多

使用注意:

  • IOS Safari隐藏模式下,localStorage.getItem会报错,建议统一使用try-catch封装
 

cookie

localStorage和sessionStorage

容量

4KB

5M

是否会携带到ajax中

携带

不携带,只作为存储

API易用性

需要自己封装

简单易用,使用getItem和setItem

 

 

 

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领,自动化构建与发布是提升开发效率项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push packageDeploy/Rollback。每个阶段都可以根据实际需求进行配置调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试部署,从而提高项目的整体质量可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值