【问题标题】:Enabling Cross Site Requests in Tomcat在 Tomcat 中启用跨站点请求
【发布时间】:2012-07-17 16:43:23
【问题描述】:

首先,这可能被标记为重复问题,但其他问题根本没有回答。我认为没有人觉得它有趣。

我想在我的 tomcat 服务器中启用跨站点请求。谷歌显示在apache中,我们可以通过添加

来启用跨站
Access-Control Allow-Origin.

如何在 tomcat 中完成这项工作。我想要两件事,一是向所有人开放访问权限,二是对有限站点的访问权限。

有可能吗,如果可以,怎么做。

如果无法进行跨站点请求,API 是如何工作的。我可以将一些数据发送到 Paypal 服务器,然后我会收到回复。我知道这是在某些服务器端语言(Java、PHP)中完成的。但我想知道它是否也可以从 Java Script 中获得,

【问题讨论】:

  • 这和 Apache Tomcat 有关系吗?如果这是在浏览器中完成的,那么服务器是不相关的。
  • 实际上,对于使用 JavaScript 的跨站点请求,仅当我希望在 Tomcat 服务器或其他 Web 服务器中允许域时才有效。或者是浏览器的问题,如果是,那么为什么apache提供“Access Control Allow Origin mysite.com”
  • “Access-Control”不是公认的 Apache httpd 配置指令。也许您正在使用 httpd 提供一个文件,该文件控制着 Adob​​e Flash Player 等其他产品?
  • 我忘记了我从哪里得到那些 apache 指令,但这些链接告诉他们存在 serverfault.com/questions/136428/… stackoverflow.com/questions/6329655/…
  • 这些是 HTTP 响应标头,而不是 Apache httpd 配置指令。您可以使用 mod_headers 在所有(或部分)响应上设置它们,但它们会影响客户端只是巧合。

标签: tomcat cross-domain


【解决方案1】:

我想我找到了一种方法,当从 Tomcat 服务器(即 Servlet)发送响应时,将响应标头设置为具有这些

Response.setHeader("Access-Control-Allow-Origin","http://www.myserver.com");

正如克里斯评论的那样,它不在 Apache 指令中。它仅在响应标头中。 希望对尝试跨域请求的人有所帮助。

【讨论】:

  • 请注意,这不是指令:它是 HTTP 响应标头。
  • 这一行看起来像是对名为“Response”的类的静态方法调用。我认为这意味着对名为“Response”的对象的方法调用,并且我在扩展 HttpServlet 类的 servlet 的“doGet”方法中使用了此代码。这对我不起作用。请提供有关其去向和工作原理的更多详细信息。
  • 示例:我的 Python 响应代码:headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(response_body))), ( 'Access-Control-Allow-Origin', '*'), ('Access-Control-Allow-Methods', 'POST, OPTIONS')
  • public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Response.setHeader("Access-Control-Allow-Origin","myserver.com"); PrintWriter out = response.getWriter( ); out.println(resp); out.close(); }
  • 这是哪个响应类?我男人什么是完全限定的名字
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 2015-01-28
  • 1970-01-01
  • 1970-01-01
  • 2014-08-31
相关资源
最近更新 更多