gpt4 book ai didi

post - HTTP 发布请求 : 401 (Unauthorized)

转载 作者:行者123 更新时间:2023-12-05 07:34:47 30 4
gpt4 key购买 nike

我有以下问题:

我的服务器以 401 错误响应 HTTP POST。在同一个 webapp 中,我可以使用 HTTP GET 请求并且工作正常。我用 postman 测试了 POST 请求,我能够成功获取数据(所以至少它在工作)...

请求码(复制自Postman):

      var data = JSON.stringify({
"query": {
"objectTypeId": "168"
}
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === 4) {
console.log(this.responseText);
}
});

xhr.open("POST", <here is my url>);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("crossdomain", "true");
xhr.setRequestHeader("Authorization", "Basic XXXXXXXX");

xhr.send(data);

我发现与此问题相关的大多数线程都指向 CORS 配置,但我认为这是有效的,因为 get-request 有效。无论如何,这是 CORS 配置:

web.xml:

    <filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<filter>
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
<init-param>
<param-name>cors.configurationFile</param-name>
<param-value>/WEB-INF/cors.properties</param-value>
</init-param>
</filter>

cors.properties:

cors.allowGenericHttpRequests = true
cors.allowOrigin=*
cors.supportsCredentials = true
cors.supportedMethods=GET, POST, HEAD, PUT, DELETE, OPTIONS
cors.supportedHeaders=*

最佳答案

事实上,这是一个 CORS 问题。您的 API 需要正确回答这些 OPTIONS 请求,否则浏览器将阻止该请求。相关外部链接:https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS .

SO 上的其他人也针对此问题提供了其他更深入的答案。可以找到一个很好的长格式答案 here .

关于post - HTTP 发布请求 : 401 (Unauthorized),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49939923/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com