无法fetch,无法抗拒的他 电视剧
fetch 详解
fetch请求出来了一段时间,短暂的在项目中使用过.这次好好学习汇总一下.
第一: fetch的使用
????? 这个是fetch的github 上面给出了fetch用法.
???? 这个是fetch的mdn文档,更加的详细.
? ? 查看两份文档的时候,github上面没有设置headers 而在 mdn上有.一开始我也很迷茫,最后我读到了一句话
因为fetch 会自己的匹配数据类型设置 content type, 所以发送json 或者formdata 等其他数据类型的时候,不需要你手动设置.
so intelligently.
所以在大部分使用的的情况下,直接使用就行. 和传统的ajax比起来,fetch 使用起来更加方便,少了繁琐的配置,又是基于promise,开发者专注于业务就行.
第二: fetch 的缺点
? ? 1.兼容性,fetch的兼容性并不太好,ie 和 safari 都不支持
在移动端和pc端 兼容性不好因为 返回的reponse body 是readable stream 不支持.?
解决方案: 使用第三方库?whatwg-fetch, 如果同构在node端使用 isomorphic-fetch .
?2.fetch 请求默认不带cookie
前端请求的时候都会设计到token 权限验证,很多时候是存在cookie里面的.fetch里面又一个参数credentials设计cookie
credentials 有三个值:
????????????????????????????omit: 默认值,忽略cookie的发送
????????????????????????????same-origin: 表示cookie只能同域发送,不能跨域发送
????????????????????????????include: cookie既可以同域发送,也可以跨域发送 ( 推荐使用)
推荐使用include.
3.fetch 跨域问题
? fetch跨域也有对应的参数设置mode
????????????????????????????????same-origin:该模式是不允许跨域的,它需要遵守同源策略,否则浏览器会返回一个error告知不能跨域;其对应的response type为basic。
????????????????????????????????cors: 该模式支持跨域请求,顾名思义它是以CORS的形式跨域;当然该模式也可以同域请求不需要后端额外的CORS支持;其对应的response type为cors。
????????????????????????????????no-cors: 该模式用于跨域请求但是服务器不带CORS响应头,也就是服务端不支持CORS;这也是fetch的特殊跨域请求方式;其对应的response type为opaque。
4.fetch 返回400 500 问题
当一个请求发送完成,服务返回状态码,fetch 不会reject这个response,仍然resolve,但是 response.ok 会设置成false.很多时候我们会二次封装fetch reject error.
5 fetch 无法 abort 请求 和timeout
目前fetch 没有传统ajax 的abort 方法,还在草案之中
给fetch内部的promise添加一个abort方法--实际就是reject一个error.
使用promise 的race, 因为promise 里面的resolve 和 reject 只能执行一次, 利用race reject 一个error.
上面的abort 并没有真正的abort 此次请求,只是通过promise promise reject 一个error而已.我在翻阅fetch的源码的时候发现了这个
在配置中确实又一个signal 参数可以abort 请求,发现是基于AbortController,但是这个是一个实验中属性,基本不能使用.
以上是我对fetch粗浅的总结,有不足的地方欢迎指出.
在实体机可以消费docker中fetch超时
1、超时原因
外部网站,国内访问时可能会超时
2、解决方法
修改Dockerfile,使用国内的alpine源
2.1、正确的做法
正确的做法是使用国内源完全覆盖 /etc/apk/repositories
在Dockerfile中增加下面的第二行
2.2、可能有问题的做法
追加国内源(echo后面双大于号),此时可能依然超时,因为默认的/etc/apk/repositories里面就有国外的源
追加方法
调试一下可以看到默认的国外源
在Dockerfile中增加一条命令
执行时可以看到全部的源
文章知识点与官方知识档案匹配
网络技能树首页概览
22502 人正在系统学习中
打开CSDN APP,看更多技术内容
最新发布 基于alpine进行dockerfile 构建时,修改apk源
这里提供一种在dockerfile中修改源的方法:在 RUN的第一步,先修改源,并使其生效。时,一直卡住,最后显示超时。这是因为众所周知的原因,只需修改apk的源即可。在基于alpine进行dockerfile 构建时,当进行到。
继续访问
docker Failed to fetch 或者 dockerfile: returned a non-zero code: 100
在使用docker 创建容器时出现的两个问题:docker Failed to fetch : returned a non-zero code: 100归根到底,就是拉取包时连接不稳定,容器内部apt-get 更新或者拉取包时实在太慢出现的错误问题解决:因为代码放在云服务器上,需要修改apt-get源变为对应的服务商的来加速例如,我的是放在腾讯云上,所以要修改为腾讯源一开始改为清华源和其他的加速源试了也都不行总结,如果是在云服务器上跑docke
继续访问
Docker/Podman使用提高----Dockerfile的制作基础及常见的问题
文章目录1.Dockerfile基础2.docker build 基础3.构建centos镜像:案例一4.修改后的案例一:5.CMD 与 ENTRYPOINT 的区别5.ADD 与 COPY 的区别6.常见问题1).fetch 超时问题2.启动容器后就直接停止了 1.Dockerfile基础 Dockerfile要点: 每个保留关键字(指令)都必须是大写字
继续访问
ERROR: : DNS lookup error
先说下笔者出现这个问题的场景: 1、内网ubuntu20.04,使用代理服务器进行上网 2、使用Dockerfile构建docker镜像 结果使用docker build -t xxx/xxx .构建docker镜像时,出现下面的错误: fetch ERROR: : DN
继续访问
构建docker镜像时ERROR: : network error
构建docker镜像时ERROR: : network error
继续访问
使用Alpine镜像构建镜像
一、alpine介绍 1、Alpine Linux是一个完整的操作系统,像其他操作系统一样,可以将Alpine安装到本地硬盘中,使用apk进行包管理。 包含了以下特点: 小巧:基于Musl libc和busybox,和busybox一样小巧,最小的Docker镜像只有5MB; 安全:面向安全的轻量发行版; 简单:提供APK包管理工具,软件的搜索、安装、删除、升级都非常方便。 适合容器使用:由...
继续访问
linux指令库 apk,alpine apk 包管理命令使用说明 详解(译至官方文档)
Packages and RepositoriesAlpine Linux的软件包是经过数字签名的tar.gz存档,包含程序,配置文件和依赖关系元数据。它们具有扩展名.apk,通常称为“a-packs”。包存储在一个或多个存储库中。存储库只是一个包含* .apk文件集合的目录。该目录必须包含一个名为APKINDEX.tar.gz的特殊索引文件,以将其视为存储库。该APK程序可以从多个仓库安装软件包...
继续访问
解决Docker构建时出现的 WARNING: Ignoring : Permission denied
解决Docker构建时出现的 WARNING: Ignoring : Permission denied 在根据官网的Docker-compose构建示例项目时遇到的问题,原因是因为无法访问官网给出的外网镜像,可能还会出现 WARNING: Ignoring : network error 通过在Dockerfile中
继续访问
alpine Linux的apk软件包管理器
Hping使用方法详解原理基础安装Hping的详细参数具体应用 原理基础 Hping是一个命令行下使用的TCP/IP数据包组装/分析工具,其命令模式很像Unix下的ping命令,但是它不是只能发送ICMP回应请求,它还可以支持TCP、UDP、ICMP和RAW-IP协议,它有一个路由跟踪模式,能够在两个相互包含的通道之间传送文件。Hping常被用于检测网络和主机,其功能非常强大,可在多种操作系统下运行,如Linux,FreeBSD,NetBSD,OpenBSD,Solaris,MacOs X,Windows。
继续访问
Dockerfile构建Alpine镜像/Linux使用apk下载设置资源(字体包/其他)失败/难产
进行构建之前注意 如果报OCI runtime create failed: systemd cgroup flag passed, but systemd support for managing cgroups is not available: unknown错误 请将daemon.json中的"exec-opts": ["native.cgroupdriver=systemd"]删掉 个人问题 我使用Dockerfile构建镜像时,使用Alpine版本的基础镜像包,进行构建一直会卡到 [INFO
继续访问
CentOS7安装docker经常出现的两个问题
这篇文章memo一下CentOS 7安装Docker经常出现的两个问题和对应方法。
继续访问
linux alpine系统切换安装源并安装telnet
1.alpine切换源 安装慢 apk add很慢 阿里镜像 sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories 科大镜像 sed -i 's/dl-cdn.alpinelinux.org/mirro
继续访问
Docker build镜像时,E: Failed to fetch
docker环境下的下载源依旧是国外源导致的,更换为对应版本的国内源即可。 1.在当前目录下,新建sources.list, 这里填写的是阿里源,18.04版本 deb bionic main restricted universe multiverse deb bionic-security main restricted universe multiverse d
继续访问
linux安装时间太久,为什么在Alpine Linux上安装Pandas需要很长时间
我注意到使用基本操作系统Alpine与CentOS或Debian在Docker容器中安装Pandas和Numpy(它的依赖关系)需要更长的时间.我在下面创建了一个小测试来演示时差.除了Alpine更新和下载构建依赖项以安装Pandas和Numpy的几秒钟之外,为什么setup.py需要比Debian安装多70倍的时间?有没有办法加速使用Alpine作为基本图像的安装,或者是否有另一个与Alpine...
继续访问
部署kubernetes官网博客
部署kubernetes官网博客 访问 有些时候不问题,部署离线内网使用官网以及博客, 各位尝鲜可以访问 安装docker root@cby:~#curl-sSL #Executingdockerinsta...
继续访问
Linux软件包安装(rpm、yum、apt-get、dpkg)
Linux RPM 1、RPM 的由来 rpm(英文全拼:redhat package manager) 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度 ...
继续访问
Docker 主要命令详解
Docker 简介及其命令详解前言一、Docker 是什么?1. Docker简介2. Docker 组成3. Docker 优点二、Docker 命令详解总结 前言 云计算时代的到来,要求运行环境的部署快速、准确。而使用Docker来完成环境的部署也被越来越多的企业所选择,所以掌握Docker十分必要。 一、Docker 是什么? 1. Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Window
继续访问
docker E: Failed to fetch... 404 Not Found
E: Failed to fetch 404 http://... Not Found 可能是因为源版本过老 sudo apt-get update 解决
继续访问
Docker常用命令
本次测试的docker版本是Docker version 18.09.0, build 4d60db4 在以前的版本中,具体哪一个我没有仔细研究,docker的配置路径如下: 环境配置文件 /etc/sysconfig/docker-network /etc/sysconfig/docker-storage /etc/sysconfig/docker unit file /usr/lib/sy...
继续访问
[Docker]Docker官方起步指南学习笔记④——实例之基于Alpine的nodejs服务器
本次的目标是基于前三次课的知识,利用Alpine的最小环境,搭建node.js环境,并创建Hello world网页应用;最后将该容器打包成映像,发布到DockerHub上。
继续访问
alpine
源
超时
写评论
8
易班出现failedtofetch
易班出现failedtofetch意思是无法找到地址。
1、failedtofetch然后后面一连串英文,这条信息就是告诉你无法找到地址,主要还是和UltraSn0w源有关。
2、用户只需删除UltraSn0w源就可以了。
fetch 无法获取到错误状态吗
这主要是由fetch返回promise导致的,因为fetch返回的promise在某些错误的http状态下如400、500等不会reject,相反它会被resolve;只有网络错误会导致请求不能完成时,fetch 才会被 reject;所以一般会对fetch请求做一层封装。