Javascript 如何从位于身份验证层后面的API获得响应?

Javascript 如何从位于身份验证层后面的API获得响应?,javascript,json,xmlhttprequest,Javascript,Json,Xmlhttprequest,我试图从位于身份验证层后面的API获得响应。我首先需要使用类似这样的json请求发布一个请求 {"username":"apitest", "password":"testapi@321" } 让我们假设api url是 我得到了一个json响应,响应体中包含以下内容: "token": "abcdefghabcdefgh" 现在我需要将令牌作为标题“x-auth-token”传递到包含参数的API中,以获得需要在html页面中显示的响应 到目前为止,我已经能够做到以下几点 functio

我试图从位于身份验证层后面的API获得响应。我首先需要使用类似这样的json请求发布一个请求

{"username":"apitest",
 "password":"testapi@321"
}
让我们假设api url是

我得到了一个json响应,响应体中包含以下内容:

"token": "abcdefghabcdefgh"
现在我需要将令牌作为标题“x-auth-token”传递到包含参数的API中,以获得需要在html页面中显示的响应

到目前为止,我已经能够做到以下几点

function begin() {
var xhr = new XMLHttpRequest();
var url = "http://test-oms-test-staging.com.au/test/auth";
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
    var json = JSON.parse(xhr.responseText);
    var string = json['token'];
    console.log(string);
}
                            }
var data = JSON.stringify({"username": "apitest", "password": 
"testapi@321"});
xhr.send(data);        
}  
现在,当我在头中使用响应令牌查询第二个API URL时,我得到了以下错误

Response for preflight is invalid (redirect)
如果我的要求过于宽泛或不够详细,我表示歉意,因为我对编程非常陌生。我做了一些研究,发现由于服务器的安全性,我的请求被重新定向。我把它作为两种单独的方法来对待,这样做对吗?再次感谢你

编辑
发生这种情况是因为API正在触发需要验证的选项请求。我想这是因为我是按照两个单独的要求来做的(首先发布请求以检索响应正文中的令牌,然后“GET”以将令牌作为标头传递。在第二个请求中,会触发飞行前发送一个选项请求,该选项请求已通过身份验证,这就是我现在收到401个“Unauthenticated”错误的原因。在为可能的重复提供的链接中,没有答案besid将服务器编辑为“未验证”,这不是有效的解决方案。

您提到需要将令牌作为标头发送,但在您的示例中,您将其作为有效负载的一部分发送。请尝试以下操作:


xhr.setRequestHeader(“x-auth-token”,下称“);

嘿,在第一个xmlhttprequest中,我需要将其作为有效负载发送,在主体中,我将获得响应(auth-token),并将其作为头发送回另一个API URL。很抱歉,它混淆了