gpt4 book ai didi

javascript - 可扩展应用程序的 CORS 问题

转载 作者:行者123 更新时间:2023-11-27 23:54:03 25 4
gpt4 key购买 nike

我有 AngularJS 中的三个应用程序,分别是身份验证服务器、资源服务器和前端应用程序。 AngularJS应用程序在Node服务器上运行,其他资源在Tomcat服务器上运行。通过使用 CORS 的 AngularJS,我能够登录到 authserver ( http://localhost:8081/oauth/token ),但无法访问资源服务器 ( http://localhost:8082/api/devices )。标题添加如下:

var config = {
headers: {
'Authorization': 'bearer '+authToken,
'Accept': 'application/json;odata=verbose'
}
};
$http.get(RESOURCE_SERVER + 'api/devices',config).then(function(response){
console.log(""+response.data);
});'''

header 未添加到资源服务器并出现诸如 CORS 问题之类的异常。我主要关心的是我能够登录到身份验证服务器,但不能登录到资源服务器,为什么会这样?

@Component
public class SimpleCORSFilter implements Filter {

public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
chain.doFilter(req, res);
}

public void init(FilterConfig filterConfig) {}

public void destroy() {}
}

Error : : XMLHttpRequest cannot load http://192.168.0.130:8080/golive-resource/api-docs. The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed. Origin 'http://127.0.0.1:9000' is therefore not allowed access.

最佳答案

问题是,在您的设置中的其他地方,您还设置了 Access-Control-Allow-Origin header ,而不是一个覆盖另一个,它们由服务器组合,这意味着您最终会有两个值。

此 header 有两个值会导致错误。因此,您应该找出在其他位置设置此 header ,然后删除该实例或从上面的代码片段中删除它。

关于javascript - 可扩展应用程序的 CORS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32420154/

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