使用Vaadin 7

时间:2015-09-22 18:52:39

标签: javascript java url redirect vaadin

我想从我的Vaadin应用程序访问一个带有修改标题的外部网站。

访问外部网站非常简单: 例如:

Link link = new Link("Open", new ExternalResource("externalSite"));

但是如何将标题添加到我的请求中。在我的场景中,我想打开该外部站点,并在标题中添加类似“abc”的密码...例如(它唯一的伪代码!!)

Link link = new Link("Open", new ExternalResource("externalSite"));
link.header("password", "abc");
link.open();

我在Vaadin找到了一个可能的解决方案,但我无法让它运行: https://vaadin.com/forum/#!/thread/8862254/8862912

 protected void init(VaadinRequest request) {

    // Add a custom request handler
    VaadinSession.getCurrent().addRequestHandler(new RequestHandler() {
        @Override
        public boolean handleRequest(VaadinSession session, VaadinRequest request, VaadinResponse response)
                throws IOException {
            if ("/redirect".equals(request.getPathInfo())) {
                response.setStatus(307); // Temporary Redirect
                response.setHeader("Location", "http://1.1.1.1");
                response.setHeader("password", "abc");
                return true;
            }
            return false;
        }
    });

    final VerticalLayout layout = new VerticalLayout();
    layout.setMargin(true);
    setContent(layout);

    final Resource redirectResource = new ExternalResource("vaadin://../redirect");

    // Redirect to the custom request handler using a link
    Link link = new Link("Redirect", redirectResource);
    layout.addComponent(link);

}

此外,我尝试使用Javascript来获取带有修改标题的重定向:

    String js = "xmlhttp.setRequestHeader(password, \"abc\");"
                    + "xmlhttp.open(\"POST\", http://1.1.1.1);";
    Page.getCurrent().getJavaScript().execute(js);

但在目标外部网站上没有设置“请求”标题,没有任何效果......任何想法我做错了什么?

0 个答案:

没有答案