我有后端应用程序写在java ee和泽西。当我使用JavaScript Fetch API将数据发送到restendpoint时,我看到过滤器被激发了两次。一旦它没有授权头,第二个它有。当我尝试从web浏览器打开我的网站时,这个过滤器只被调用一次。为什么会发生这种事。也许是因为CORS?
下面我的日志从单一的帖子,两个打印从同一个过滤器。
http://localhost:8080/BlogRest/controller/endpoint/|#]
Key=host, value=localhost:8080|#]
Key=origin, value=http://localhost:3000|#]
Key=access-control-request-method, value=POST|#]
Key=content-length, value=0|#]
Key=access-control-request-headers, value=authorization,content-type|#]
Key=connection, value=keep-alive|#]
Key=accept, value=*/*|#]
Key=user-agent, value=user agent data|#]
Key=referer, value=http://localhost:3000/|#]
Key=accept-language, value=pl-pl|#]
Key=accept-encoding, value=gzip, deflate|#]
第二次通话
http://localhost:8080/BlogRest/controller/endpoint/|#]
Key=host, value=localhost:8080|#]
Key=origin, value=http://localhost:3000|#]
Key=content-type, value=application/json|#]
Key=accept-language, value=pl-pl|#]
Key=accept-encoding, value=gzip, deflate|#]
Key=connection, value=keep-alive|#]
Key=accept, value=*/*|#]
Key=user-agent, value=user agent data|#]
Key=authorization, value=Bearer token|#]
Key=referer, value=http://localhost:3000/origin|#]
Key=content-length, value=15|#]
有两个请求是因为CORS。一个请求方法是OPTIONS,当它被预成形时,就会启动预期的POST请求。选项请求不调用endpoint,它只获取te服务器配置。因此,我使用HttpServletRequest getMethod()按方法在Java过滤器请求中进行了过滤。
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
HttpServletRequest requ = (HttpServletRequest) request;
if (requ.getMethod().toLowerCase().equals(HttpMethod.OPTIONS)) {
chain.doFilter(request, response);
return;
}
//do something on not options method.
chain.doFilter(request, response);
}
我觉得有一个简单的解决办法,但由于某些原因,我不能把我的头围绕它。 我有一个情况,一个按钮必须先点击,才能点击另一个。用户为这2个JButtons选择的选项将决定程序的下一步。这意味着我必须调用actionListener两次,对吗?我如何在一个actionPerformed方法中做到这一点? 如果actionPerformed方法中的(e.getSource()==Square[1][4]&&e
问题内容: 在我的Angular 2应用中,我具有以下后端服务。 调用此服务后,我想在上一个成功的情况下调用另一个服务。 第二次服务 这两个服务分别返回两个JSON数组。然后,我需要使用这两个数组进行一些登录。 已编辑 服务 然后,我在其他ts文件中使用following来调用服务。 但这会在控制台日志上出现以下错误。 任何建议表示赞赏。 问题答案: 您需要利用操作员在前一个请求完成后调用一个请求
问题内容: 我在Go中关注一个简单的Web服务器示例。 我插入了一条语句,使生成的代码如下所示: 问题是,每当我在Web浏览器中加载端口8000时,此函数就会被调用两次。这是一个问题,因为我打算在每次页面访问时增加一个计数器。通过这种行为,计数器将增加两次。OTOH,如果我这样做,它只会被调用一次。 我觉得我在这里失踪真的很愚蠢。 问题答案: 只需记录请求。您将意识到您的浏览器还请求/favico
我仍在尝试将RXJava2用于多个订阅者使用的轮询服务。它工作得很好,除了它总是调用两次。 我尝试使用publish(1)、take(1)、share()、refCount()等,但结果总是一样。叫两次或多次。 我还是不明白为什么它叫了两次。新订阅服务器应该接收最新发出的值,并且只在更改后的值(如果hashmap更改了)返回为modified List。 我的民意调查可观察到(单例) 我的谓词用于
下面的代码循环了两次。第一个while循环要求用户输入(以做出选择)。我把选择默认值设置为“n”,使它变得更简单。 因此,它命中if语句并开始第2个while循环。现在它要求用户进行另一个选择。用户只能输入“a”,因为其他任何东西都会出现错误陷阱。用户输入“a”并得到添加一个数字的提示(变量num=0)。用户输入一个数字。 使用更多信息更新的代码 我已经尝试使用不同的变量进行选择。它不起作用。我想
问题内容: 为什么在组合框中选择项目时会两次调用此事件? 问题答案: 对于一次更改,JComoboBox ItemListener确实会被调用两次。一次用于SELECTED事件,一次用于DESELECTED事件。 有关如何编写ItemListener的信息,请参见本教程页面。 基本上你要做的就是