首页 > 解决方案 > JavaScript - 在提交按钮后将用户重定向到 API 响应中提供的 URL

问题描述

我有一个带有姓名、电子邮件、电话、密码输入的 HTML 提交表单。单击“提交”按钮后,我通过 jQuery 脚本将所有数据发送到 API:

function login() {
  var request = new XMLHttpRequest();
  request.open('POST', 'https://ensyu6r51m3oldb.m.pipedream.net');
  request.setRequestHeader('Content-Type', 'application/json');
  request.setRequestHeader('Accept', '*/*');

  request.onreadystatechange = function() {
    if (this.readyState === 4) {
      console.log('Status:', this.status);
      console.log('Headers:', this.getAllResponseHeaders());
      console.log('Body:', this.responseText);
    }
  };
  
  var arguments = $('#h14kLToIyLIMrHQDo37BZUtKoTg6bMlH').serializeArray().reduce(function(obj, item) {
    obj[item.name] = item.value;
    return obj;
  }, {});
  
  var body = { arguments };
  request.send(JSON.stringify(body));
}

现在到了我需要帮助的部分——我从 API 提供商那里得到了一个响应,其中包含我应该重定向用户以进行自动登录的 URL,但我不知道如何获取该 URL 并重定向到它。

以下是 API 响应示例:

{
    "status": "something"
    "url": "https.." // redirect to that
    "object_id": xxx // customer ID
}  

也许有人可以帮助我调整脚本,以便将用户重定向到自动登录到应该从 API 响应中获取的 URL?

非常感谢你的帮助!

标签: javascriptjqueryapiautologin

解决方案


您可以将 window 对象上的 location.href 更改为您在响应中收到的 url。代码是

window.location.href = JSON.parse(this.responseText).url;

推荐阅读