首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在ReactJS中通过fetch()发送带有POST请求的formData时重定向到外部URL?

在ReactJS中,可以使用fetch()函数发送带有POST请求的formData,并且可以通过重定向到外部URL来实现。下面是一个示例代码:

代码语言:txt
复制
const formData = new FormData();
formData.append('key1', 'value1');
formData.append('key2', 'value2');

fetch('https://example.com/external-url', {
  method: 'POST',
  body: formData,
  redirect: 'follow' // 设置重定向选项为follow
})
  .then(response => {
    if (response.redirected) {
      window.location.href = response.url; // 重定向到外部URL
    }
  })
  .catch(error => {
    console.error('Error:', error);
  });

在上面的代码中,首先创建一个FormData对象,并添加需要发送的数据。然后使用fetch()函数发送POST请求,将FormData对象作为请求的body参数传递。同时,设置重定向选项为'follow',以便在服务器返回重定向响应时自动进行重定向。

在fetch()的响应处理中,可以通过检查response对象的redirected属性来判断是否发生了重定向。如果发生了重定向,可以通过window.location.href将页面重定向到response.url指定的外部URL。

需要注意的是,由于安全策略的限制,浏览器可能会阻止跨域的重定向。因此,确保重定向的目标URL与当前页面的域名是相同的,或者在目标URL的服务器端进行适当的配置以允许跨域重定向。

推荐的腾讯云相关产品:腾讯云云服务器(https://cloud.tencent.com/product/cvm)和腾讯云对象存储(https://cloud.tencent.com/product/cos)可以用于支持ReactJS应用程序的部署和存储需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Form 表单数据编码、解码--encodeURIComponent、URLSearchParams、FormData

,在 HTML 和 XForms 规范定义仍然采用早期版本,用“+”代替“%20”替换空格。...业务,我们通常不是通过 action 方式发送,而是通过 ajax/fetch 方式进行封装处理,此时需要对数据进行编码或解码操作。...,然而在 GET 和 POST 请求它们是特殊字符 URLSearchParams 通过encodeURIComponent()和decodeURIComponent() 可以完成相关参数编码、...如果此时需要通过 ajax/fetch 发送请求,可以借助 FormData 进行封装数据。...FormData 接口提供了一种表示表单数据键值对 key/value 构造方式,并且可以轻松将数据通过XMLHttpRequest.send() 方法发送出去,本接口和此方法都相当简单直接。

1.9K20

Form 表单数据编码、解码--encodeURIComponent、URLSearchParams、FormData

,在 HTML 和 XForms 规范定义仍然采用早期版本,用“+”代替“%20”替换空格。...业务,我们通常不是通过 action 方式发送,而是通过 ajax/fetch 方式进行封装处理,此时需要对数据进行编码或解码操作。...,然而在 GET 和 POST 请求它们是特殊字符 URLSearchParams 通过encodeURIComponent()和decodeURIComponent() 可以完成相关参数编码、...如果此时需要通过 ajax/fetch 发送请求,可以借助 FormData 进行封装数据。...FormData 接口提供了一种表示表单数据键值对 key/value 构造方式,并且可以轻松将数据通过XMLHttpRequest.send() 方法发送出去,本接口和此方法都相当简单直接。

1.2K10

前后端数据交互(四)——fetch 请求详解

1.1、fetch使用语法 fetch(url,options).then((response)=>{ //处理http响应 },(error)=>{ //处理错误 }) url :是发送网络请求地址...方式 使用 post 发送请求,需要设置请求头、请求数据等。... body:JSON.stringify(json) 如果提交是表单数据,使用 formData转化下,: body:new FormData(form) 上传文件,可以包含在整个表单里一起提交,...3.2、fetch默认不带cookie 传递cookie,必须在header参数内加上 credentials:'include',才会像 xhr 将当前cookie 带有请求。...3.3、异常处理 fetch 不同于 xhr ,xhr 自带取消、错误等方法,所以服务器返回 4xx 或 5xx ,是不会抛出错误,需要手动处理,通过 response status 字段来判断

1.3K40

React Native探索(五)使用fetch进行网络请求

Response对象还提供了多种方法: formData():返回一个带有FormDataPromise。 json() :返回一个带有JSON对象Promise。...redirect():返回了一个可以重定向至某URLresponse。 arrayBuffer():返回一个带有ArrayBufferPromise。...与get请求类似,这里也添加一个触发事件来进行post请求,当点击“post请求,查看Charles抓包请求信息,如下图所示。 ?...3.简单封装fetch 如果每次请求网络都要设定method、headers、body等数据,同时还要多次调用then方法对返回数据进行处理,显然很麻烦,下面就对上面例子get和post请求做一个简单封装...在FetchUtils定义了send方法,对GET和POST请求做了区分处理,并在注释1处通过callback将响应数据response回调给调用者。

1.9K70

前后端数据交互(四)——fetch 请求详解

1.1、fetch使用语法 fetch(url,options).then((response)=>{ //处理http响应 },(error)=>{ //处理错误 }) url :是发送网络请求地址...方式 使用 post 发送请求,需要设置请求头、请求数据等。... body:JSON.stringify(json) 如果提交是表单数据,使用 formData转化下,: body:new FormData(form) 上传文件,可以包含在整个表单里一起提交,...3.2、fetch默认不带cookie 传递cookie,必须在header参数内加上 credentials:'include',才会像 xhr 将当前cookie 带有请求。...3.3、异常处理 fetch 不同于 xhr ,xhr 自带取消、错误等方法,所以服务器返回 4xx 或 5xx ,是不会抛出错误,需要手动处理,通过 response status 字段来判断

1.6K20

前后端数据交互(四)——fetch 请求详解

1.1、fetch使用语法 fetch(url,options).then((response)=>{ //处理http响应 },(error)=>{ //处理错误 }) url :是发送网络请求地址...方式 使用 post 发送请求,需要设置请求头、请求数据等。... body:JSON.stringify(json) 如果提交是表单数据,使用 formData转化下,: body:new FormData(form) 上传文件,可以包含在整个表单里一起提交,...3.2、fetch默认不带cookie 传递cookie,必须在header参数内加上 credentials:'include',才会像 xhr 将当前cookie 带有请求。...3.3、异常处理 fetch 不同于 xhr ,xhr 自带取消、错误等方法,所以服务器返回 4xx 或 5xx ,是不会抛出错误,需要手动处理,通过 response status 字段来判断

1.3K20

JavaScriptFetch

区别 fetch 规范与 jQuery.ajax() 主要有三种方式不同: 1.当接收到一个代表错误 HTTP 状态码,从 fetch() 返回 Promise 不会被标记为 reject, 即使响应...init (可选) 一个配置项对象,包括所有对请求设置。可选参数有: 1.method: 请求使用方法, GET、POST。...3.body: 请求 body 信息:可能是一个 Blob、BufferSource、FormData、URLSearchParams 或者 USVString 对象。...注意 GET 或 HEAD 方法请求不能包含 body 信息。 4.mode: 请求模式, cors、 no-cors 或者 same-origin。...最简单用法是只提供一个参数用来指明想 fetch() 资源路径,然后返回一个包含响应结果promise(一个 Response 对象)。 当然它只是一个 HTTP 响应,而不是真的JSON。

1.8K20

PWA系列——Fetch API

虽然同样也是处理 HTTP 请求和响应,但 fetch 有两个不同之处,一个是收到错误 HTTP 状态码fetch 方法返回 Promise 不会被 reject,而是将 resolve 对象名为...看个例子: 通过 fetch 发送 png 图片请求,并使用 blob 方法和 createObjectUrl 方法将数据转为 Object URL,并通过 img 元素显示出来: +(async function...请求,将 url header 等必要信息传入 Request 构造函数 (async function () { // 创建 url let url = new URL('https...Body.blob() 返回解决一个Blob表示请求主体promise. Body.formData() 返回解决一个FormData表示请求主体promise....Response 响应 通过 new 操作符创建 Reponse 实例,Response 实例并非一定需要发送真正请求才可获得。通过构造函数我们可以自己去构造一个 Response 实例 ?

94020

C++ Web 编程

CGI 规范目前是由 NCSA 维护,NCSA 定义 CGI 如下: 公共网关接口(CGI),是一种用于外部网关程序与信息服务器( HTTP 服务器)对接接口标准。...然而,以这种方式搭建起来 HTTP 服务器,不管何时请求目录某个文件,HTTP 服务器发送回来不是该文件,而是以程序形式执行,并把执行产生输出发送回浏览器显示出来。...C++ CGI 程序可以与任何其他外部系统( RDBMS)进行交互。...QUERY_STRING 通过 GET 方法发送请求 URL 编码信息,包含 URL 问号后面的参数。 REMOTE_ADDR 发出请求远程主机 IP 地址。...通常浏览器会使用两种方法把这个信息传到 Web 服务器,分别是 GET 和 POST 方法。 使用 GET 方法传递信息 GET 方法发送已编码用户信息追加到页面请求。页面和已编码信息通过 ?

1.2K60

开心档之C++ Web 编程

CGI 规范目前是由 NCSA 维护,NCSA 定义 CGI 如下: 公共网关接口(CGI),是一种用于外部网关程序与信息服务器( HTTP 服务器)对接接口标准。...然而,以这种方式搭建起来 HTTP 服务器,不管何时请求目录某个文件,HTTP 服务器发送回来不是该文件,而是以程序形式执行,并把执行产生输出发送回浏览器显示出来。...C++ CGI 程序可以与任何其他外部系统( RDBMS)进行交互。...QUERY_STRING 通过 GET 方法发送请求 URL 编码信息,包含 URL 问号后面的参数。 REMOTE_ADDR 发出请求远程主机 IP 地址。...通常浏览器会使用两种方法把这个信息传到 Web 服务器,分别是 GET 和 POST 方法。 使用 GET 方法传递信息 GET 方法发送已编码用户信息追加到页面请求。页面和已编码信息通过 ?

15310

Ajax 之战:XMLHttpRequest 与 Fetch API

头、请求和响应对象 上面简单 fetch() 示例,使用一个字符串定义 URL 端点,也可以传递一个可配置 Request 对象,它提供了有关调用一系列属性: const request = new...(); // FormData representation of body Headers 对象提供了一个简单接口来设置请求头信息或获取响应头信息: // set request headers...凭证控制 XMLHttpRequest 总是发送浏览器 cookie,Fetch API 不会发送 cookie,除非你显式地在第二个参数 init 对象设置 credentials 属性。...数据流 XMLHttpRequest 将整个响应读入内存缓冲区,但是 fetch() 可以流式传输请求和响应数据,这是一项新技术,流允许你在发送或接收处理更小数据块。...更显式故障检测 当开发人员第一次使用 fetch() ,假设一个 HTTP 错误, 404 Not Found 或 500 Internal Server error 将触发 Promise 拒绝并运行相关

2.1K20

Fetch API 教程

Response 对象还有一个Response.redirect()方法,用于将 Response 结果重定向指定 URL。该方法一般只用在 Service Worker 里面,这里就不介绍了。...credentials credentials属性指定是否发送 Cookie。可能取值如下: same-origin:默认值,同源请求发送 Cookie,跨域请求发送。...可能取值如下: no-referrer-when-downgrade:默认值,总是发送Referer标头,除非从 HTTPS 页面请求 HTTP 资源发送。...strict-origin-when-cross-origin:同源请求Referer标头包含完整路径,跨域请求只包含域名,HTTPS 页面请求 HTTP 资源发送该标头。...unsafe-url:不管什么情况,总是发送Referer标头。 五、取消fetch()请求 fetch()请求发送以后,如果中途想要取消,需要使用AbortController对象。

2.8K20

跟我一起探索 HTTP-Fetch API

它同时还为有关联性概念,例如 CORS 和 HTTP Origin 标头信息,提供一种新定义,取代它们原来那种分离定义。 发送请求或者获取资源,请使用 fetch() 方法。...除非你在init 对象设置(去包含)credentials,否则fetch()将不会发送跨源 cookie 备注: 更多关于 Fetch API 用法,参考使用 Fetch,以及一些概念 Fetch...init 可选 一个配置项对象,包括所有对请求设置。可选参数有: method: 请求使用方法, GET、POST。...(response); myImage.src = objectURL; }); 在Fetch with init then Request 示例,我们做同样操作,除了在调用 fetch() 传入一个...(myRequest,myInit).then(function(response) { ... }); 你也可以传入同样 init 对象 Request 构造器,来实现同样效果,: var

19930

JS 网络请求 AJAX, Fetch, WebSocket

// 参数可以是 FormData, FormData, ArrayBuffer, Document, 序列化字符串 如果是post方法,就要在send之前设置请求Content-Type。...我们还需要关心status属性它也是只读属性,它是这次响应 HTTP 数字状态码。在请求之前和 XMLHttpRequest 出错它为0。...比如能发送FormData。 超时时间 timeout 属性是超时时间,单位毫秒。当超时发生他会触发ontimeout回调函数。...CORS通过Preflighted Requests透明服务器验证机制支持使用自定义头部、get和post之外方法,不同类型主题内容。...jsonp方法主要是创建script标签来获得数据,一般通过请求后面跟?callback=fn 回掉函数来获取数据。 Fetch Fetch 是网络请求一个更好替代方法。

4.1K30

Ajax

(); 2:设置请求方式和请求地址 /* 参数顺序,描述 (1)method:请求类型;GET 或 POST (2)url:文件在服务器上位置 (3)async:true...(异步)或 false(同步) (一般为true,因ajax精髓就是异步) */ xmlHttp.open("GET||POST","url (....}option.type * @param {发送请求地址} option.url * @param {发送请求数据}option.data * @param {超时时间} option.timeout.../json.txt)"); 跨域 ajax请求过程:ajax发送请求–浏览器–服务器 响应过程则是请求过程颠倒 当ajax发送请求浏览器,浏览器发送到服务器,处理并响应后,原路返回到浏览器,此时会验证其请求来源域名跟发送请求是否一样..., data:formdata, //由于jq在发送请求,会把请求数据自动处理为适合发送数据格式,但是formdata对象本事就不用处理,

5.9K10

浏览器自带fetch函数发送GET POST请求发送POST form数据

fetch 是浏览器自带函数,用于发送网络请求fetch 方法返回一个 Promise 对象,可以通过链式调用 then 方法处理响应数据,或者通过 catch 方法捕获错误信息。...首先使用 fetch 方法发送了一个 GET 请求,并指定了请求 URL。...除了 GET 请求,还可以通过 fetch 发送 POST 请求,示例代码如下: const requestBody = { title: 'foo', body: 'bar', userId...通过指定 method 参数为 'POST',并在请求 body 参数设置请求体内容,使用 JSON.stringify() 方法将请求体转换为 JSON 格式字符串。...此外,在发送 POST 请求,需要设置请求 'Content-Type' 参数为 'application/json',并将请求体使用 JSON.stringify() 方法进行序列化。

2.3K10

【通信】前端几类数据交互方式

action : 提交到哪 method: GET/POST/PUT/DELETE/HEAD GET:把数据放在url里面传输 ,数据量很小,会缓存(主要便于获取,下次获取就更快)...,看得见 POST: 放在Body里 , 数据量大,不会缓存 ,看不见 DELETE:删除 PUT:发送 HEAD:让服务器只发送头回来就行(不需要内容),form发不出head...,下回不会再请求这个服务器) 302-临时重定向(下回依然会请求这个服务器) 304-Not Modified(date 缓存未过期、缓存过期) //4xx 请求错误,主要错误原因在客户端 //5xx...二进制数据 FormData //FormData 一种容器 //formData.set('name',value) <input type="button" value="ajax<em>请求</em>" id="btn1...,<em>如</em>show() jquery <em>中</em><em>的</em>jsonp功能 注意:jQuery<em>中</em><em>的</em>jsonp不是Ajax $(function(){ $.ajax({ <em>url</em>:'https://sp0.baidu.com

24210

Fetch了解一下呀!

https://github.com/github/fetch Demo是搭了一个简单Flaskweb服务,然后通过Node环境发出请求 「此刻你在沙漠里,因此你要潜心于沙漠之中。...fetch()通过数据流(Stream 对象)处理数据,可以分块读取,有利于提高网站性能表现,减少内存占用,对于请求大文件或者网速慢场景相当有用。...} ] [Done] exited with code=0 in 0.25 seconds Response 对象还有一个Response.redirect()方法,用于将 Response 结果重定向指定...keepalive: false, /// keepalive属性用于页面卸载,告诉浏览器在后台保持连接,继续发送数据。...实例,然后发送fetch()请求,配置对象signal属性必须指定接收AbortController实例发送信号controller.signal。

5K10
领券