如何将 s:url 链接到外部 URL?

Posted

技术标签:

【中文标题】如何将 s:url 链接到外部 URL?【英文标题】:How to link s:url to an external URL? 【发布时间】:2012-08-18 06:13:29 【问题描述】:

我们正在尝试使用 Struts2-jQuery 和 Struts2 标签将 HREF 目标加载到 Div 标签。下面是代码。

只要 s:url 值是内部 URL,它就可以正常工作,但是如果我将其更改为外部 URL,例如 www.google.com,则单击链接时不会发生任何事情。

如果 URL 是外部 URL,我们需要做些什么不同的事情吗?即当前应用程序之外的 URL

<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<html>
  <head>
    <sj:head/>
  </head>
  <body>
    <div id="div1">Div 1</div>
    <s:url var="ajaxTest" value="/AjaxTest.action"/>

    <sj:a id="link1" href="%ajaxTest" targets="div1">
      Internal Content
    </sj:a>

   <s:url var="ajaxXternal" value="www.google.com"/>

    <sj:a id="link2" href="%ajaxXternal" targets="div1">
      External Content
    </sj:a>

  </body>
</html>

【问题讨论】:

10/14 问题得到解答;如果答案不令您满意,请不要接受——但如果是,请接受。只有你可以决定。 【参考方案1】:

使用 Ajax 调用外部站点会创建一个跨域 XHR 请求,这将不起作用。*

如果你想从另一个域加载,它应该支持 JSONP,或者你可以从 your 应用发出请求(一个 S2 操作),这使得 正常 通过 HttpClient 之类的方式向站点请求(非 Ajax)。从您的操作流回该响应,插件将加载 div。

* 除非网站的 Access-Control-Allow-Origin 让您访问,显然。

【讨论】:

刚刚在api.jquery.com/load [附加说明] 部分看到了相同的内容。我测试 URL 的地方是不同的域,但我们的实际应用程序在同一域下会有不同的上下文根 dashboard.company.com [从这里链接到应用程序 URL 的下一个],dashboard.company.com/xyz 和 dashboard.company.com/abc。所以这可能会在我们的实际场景中解决。谢谢你的回答。

以上是关于如何将 s:url 链接到外部 URL?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Link To with HandleBars 链接到外部 URL

如何在 Struts2 中提交表单的 URL 中传递参数

微信中如何通过手机系统默认外部浏览器打开指定网页URL

如何在 Oro 导航中链接到外部网站?

如何在 xampp 中链接到外部站点

将查看次数添加到网站上的外部链接