我目前正在研究vertx 3.我通过输入“localhost:8080 / home”来访问我的应用程序,我需要调用其他路由而不更改浏览器地址栏中的URL。例如,我有两种形式:
<form action="/list" method="POST">
<input type="text" name="list"/>
<input type="submit" value="submit"/>
</form>
和
<form action="/insert" method="POST">
<input type="text" name="insert"/>
<input type="submit" value="submit"/>
</form>
我想在第一个表单的action属性中定义URL “localhost:9090 / list”,并且URL “localhost:9091 / insert”在第二个表单的action属性中定义,并且“localhost:8080 / home”仍然显示在浏览器地址栏中。有可能用vert.x做到这一点吗? 如果您有示例代码,请告诉我。我想过Ajax,但我不知道它是否可以做到。
我想问一下,在不同的端口(9090,9091,9092等)上监听多个Verticle是否是个好主意。如果是,感兴趣的是什么?
目前我使用2个Verticle,当我问一个地址例如“localhost:9090 / list”时,它有时会起作用,有时我会“Resouces not found”同样适用于“localhost:9091 / insert”。如果有多个Verticle是个好主意,我该如何解决这个问题?
提前感谢您的帮助!
答案 0 :(得分:0)
是的,只有使用AJAX才能访问其他端口或子域而无需离开初始页面。 代码看起来像这样(jQuery):
var form = $( '#myForm' );
form.submit(function( event ) {
event.preventDefault();
$.ajax({
method: 'POST',
url:'http://localhost:9091/insert',
data: form.serialize(),
....
});
});
在不同端口下的Verticle(-s)中启动http-servers实际上代表了微服务的想法。如果您使用相同的端口,则意味着您公开了在多个Verticle上缩放的相同服务。当然,在不同的端口下公开 相同的服务 并遇到你的问题是没有意义的。