我正在创建一个带有访问管理(am)服务器的社交登录页面.

UI:ReactJS

请求:

POST /api/auth/socialauth/initiate HTTP/1.1
Host    example.com
User-Agent  Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:49.0)
Accept  */*
Accept-Language en-US,en;q=0.5
Accept-Encoding gzip, deflate
origin  http://web.example.com:8080
Referer http://web.example.com:8080/myapp/login
Cookie  authId=...; NTID=...

回答

HTTP/1.1 307 Temporary Redirect
https://www.facebook.com/dialog/oauth?client_id=...&scope=public_profile%2Cemail&redirect_uri=http%3A%2F%2Fam.example.com%3A8083%2Fopenam%2Foauth2c%2FOAuthProxy.jsp&response_type=code&state=qtrwtidnwdpbft4ctj2e9mv3mjkifqo

react 代码:

initiateSocialLogin() {
    var url = "/api/auth/socialauth/initiate";

    fetch(url, { method: 'POST' })
        .then(response => {
            // HTTP 301 response
            // HOW CAN I FOLLOW THE HTTP REDIRECT RESPONSE?
        })
        .catch(function(err) {
            console.info(err + " url: " + url);
        });
}

如何跟踪重定向响应并在web浏览器中显示新内容?

推荐答案

Request.redirect可以是"follow""error""manual".

如果是"follow",fetch()API将遵循重定向响应(HTTP

如果是"error",fetch()API将重定向响应视为

如果是"手动",fetch()API不会遵循重定向并返回

既然你想在抓取后重定向,就把它当作

fetch(url, { method: 'POST', redirect: 'follow'})
    .then(response => {
        // HTTP 301 response
    })
    .catch(function(err) {
        console.info(err + " url: " + url);
    });

Reactjs相关问答推荐

是否可能有不同的加载器用于路径有查询参数和没有查询参数,或者在React Router 6中添加它们时有条件地跳过一个加载器?

构建next.js项目时状态不变,但在dev服务器中

后端关闭时如何在REACTION AXIOS拦截器中模拟数据?

Reaction Axios多部分/表单-数据数组不工作

在Reaction中更新状态时,我将变得未定义

使用Reaction-Hook-Form时未激发React.js onBlur事件

react ';S使用状态不设置新状态

这两个子元素在Reaction Native中使用的有什么不同?

无法使用Reaction日期选取器和Next.js设置初始日期

Reaction-路由-DOM v6与v5

错误:操作必须是普通对象.使用自定义中间件进行异步操作. Redux/工具包

预期无限重新渲染但没有发生

MUI TextField Select 菜单的最大高度

页面加载时不显示数组中的数据

React Native map 中的初始zoom 级别

Cypress - 替换 React 项目中的变量

getAttribute 函数并不总是检索属性值

将 dict 值转换并插入到react 钩子的列表中

Context Api React 的问题

为什么这两个 div 的渲染方式不同?