解决跨域问题之fetch的使用
一、介绍
fetch 提供了一个获取资源的接口 (包括跨域)。
fetch 的核心主要包括:Request , Response , Header , Body
利用了请求的异步特性 --- 它是基于 promise 的
1.作用:fetch这个API, 是专门用来发起Ajax请求的;
fetch('/url').then(data=>{
return data.text();
}).then(ret=>{
//注意,这里才是得到的最终数据
console.log(ret);
});
2.fetch是由原生JS提供的API,专门用来取代XHR这个对象的;
fetch("请求的url地址")
.then(response => res.json() )
.then(data => console.log(data))
//注意: 第一个.then 中获取到的不是最终数据,而是一个中间的数据流对象;
// 注意: 第一个 .then 中获取到的数据, 是一个 Response 类型对象;
// 注意: 第二个 .then 中,获取到的才是真正的 数据;
3.发起Get 请求
// 默认 fetch("url") 的话, 发起的是 Get 请求
fetch("url")
.then(response => {
//这个 response 就是 服务器返回的可读数据流, 内部存储的是二进制数据
// .json() 的作用,就是 读取 response 这个二进制数据流,并把 读取到的数
// 据,转为 JSON 格式的Promise 对象
return response.json()
})
.then(data => {
//这离 第二个 .then 中拿到的 data, 就是最终的数据
console.log(data)
})
4.发起Post请求 例如:
var sendDate = new URLSearchParams()
sendDate.append("name",'ls')
sendDate.append("age", 30) fetch("url", {
method: "post",
body: sendDate, //要发给服务器的数据
mode:'cors'
})
.then(response => response.json())
.then(data => console.log(data))
fetch(URL, {
method: 'post',
body:JSON.stringify(obj),
headers:{
'Content-Type': 'application/json'
}
})
.then(function (response) {
return response.text();
})
.then(function (myJson) {
alert(myJson);
});
解决跨域问题之fetch的使用的更多相关文章
- Python之Flask和Django框架解决跨域问题,配合附加ajax和fetch等js代码
Flask框架py解决跨域问题示例: # -*- coding: utf- -*- # by zhenghai.zhang from flask import Flask, render_templa ...
- 基于 HTTP 请求拦截,快速解决跨域和代理 Mock
近几年,随着 Web 开发逐渐成熟,前后端分离的架构设计越来越被众多开发者认可,使得前端和后端可以专注各自的职能,降低沟通成本,提高开发效率. 在前后端分离的开发模式下,前端和后端工程师得以并行工作. ...
- AngularJs最简单解决跨域问题案例
AngularJs最简单解决跨域问题案例 2016-05-20 09:18 82人阅读 评论(0) 收藏 举报 分类: javascript(1) 作者:白狼 出处:http://www.mank ...
- 后台访问 JS解决跨域问题
今天看了看以前做的一个小项目(其实就是一个页面),分享一下当时解决跨域问题的: 背景:公司把项目部署在多台服务器上,防止一台服务器崩溃后,其他的可以继续访问,对应本公司来说,某台服务器出问题后,技术人 ...
- PhoneGap开发跨平台移动APP - 解决跨域资源共享
解决跨域资源共享 一.WebApi解决跨域资源共享. 开发中选择WebApi来作为服务端的数据接口,由于使用PhoneGap,就需要通过js来获取远程远程数据服务器的数据,由于同源策略的限制,这就涉及 ...
- 使用nginx解决跨域问题(flask为例)
背景 我们单位的架构是在api和js之间架构一个中间层(python编写),以实现后端渲染,登录状态判定,跨域转发api等功能.但是这样一个中间会使前端工程师的工作量乘上两倍,原本js可以直接ajax ...
- 使用Access-Control-Allow-Origin解决跨域
什么是跨域 当两个域具有相同的协议(如http), 相同的端口(如80),相同的host(如www.google.com),那么我们就可以认为它们是相同的域(协议,域名,端口都必须相同). 跨域就指着 ...
- Ajax 是什么?Ajax 的交互模型?同步和异步的区别?如何解决跨域问题?以及 HTTP状态码
一.Ajax 是什么: 1. 通过异步模式,提升了用户体验 2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用 3. Ajax 在客户端运行,承担了一部分本来由服务器承担的工作 ...
- web api 解决跨域的问题
web api 总是会遇到跨域的问题,今天我找到了如下方法解决跨域: 1: a:在配置文件中的 加上如下代码 <system.webServer> <httpProtocol> ...
- ajax 、ajax的交互模型、如何解决跨域问题
1.ajax是什么? — AJAX全称为“AsynchronousJavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术. — 不是一种新技 ...
随机推荐
- 关于Java执行Cmd命令出现的死锁问题解决
原文:关于Java执行Cmd命令出现的死锁问题解决 - Stars-One的杂货小窝 问题 之前研究了Java通过执行cmd命令从而触发Android打包的思路,但是发现Android打包成功之后,后 ...
- Java valueOf() 方法---->摘抄
valueOf(boolean b): 返回 boolean 参数的字符串表示形式.. valueOf(char c): 返回 char 参数的字符串表示形式. valueOf(char[] data ...
- CSS(相对定位relative、绝对定位absolute、固定定位fixed、定位应用、元素的显示和隐藏)
一. 定位(position) 介绍 1.1 为什么使用定位 我们先来看一个效果,同时思考一下用标准流或浮动能否实现类似的效果? 场景1: 某个元素可以自由的在一个盒子内移动位置,并且压住其他盒子. ...
- 深入浅出Java多线程(十三):阻塞队列
引言 大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第十三篇内容:阻塞队列.大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!! 在多线程编程的世界里,生产者-消费者问 ...
- 【Leetcode】53. 最大子数组和
题目(链接) 给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 子数组是数组中的一个连续部分. 示例 1: 输入:nums = [-2,1,-3, ...
- dbvisivuser连oracle数据库报错没有权限
原因:数据库从11g升级为19c了 解决:ojdbc.jar也要换成最新的,导致报错的旧jar包2M大小,换成新jar包3M大小.替换jar包要将 dbvisivuser的tool driverMan ...
- read IEEE std for verolog(2)
read IEE standard for verilog (2) 1.阅读前言 前面大致地看完了序言,了解了一下verilog的起源以及基本特性.接下来往下读有相关链接和目录,然后是正文.今天暂时阅 ...
- KingbaseES sys_restore 恢复表时默认不包括表上的索引
前言 最近碰到一个案例,在使用sys_restore恢复指定表时,默认不恢复表上的索引,如果想恢复需要单独指定. 测试过程 [](javascript:void(0) 查看表的有关属性:test=# ...
- 论文阅读:A new approach solve the multi-product multi-period inventory lot sizing with supplier selection problem
论文:A new approach solve the multi-product multi-period inventory lot sizing with supplier selection ...
- #双指针#洛谷 7521 [省选联考 2021 B 卷] 取模
题目传送门 分析 将 \(a\) 排序后从大到小枚举 \(a_k\),注意枚举的时候重复的只考虑一次,那么可以将其它数按照模 \(a_k\) 后排序, 答案只可能来自最大值与次大值之和取模或者之和最接 ...
