Java JBoss AS 7.1.1中的跨域POST

Java JBoss AS 7.1.1中的跨域POST,java,web-applications,cross-domain,jboss7.x,Java,Web Applications,Cross Domain,Jboss7.x,我在云服务器中有一个web应用程序。我的web应用程序的一个控制器将通过移动应用程序访问的URL外部化(使用JavaScript;我正在使用Tianium为Android和iOS开发)。我可以毫无问题地访问GET方法,获得我想要的,但是当我调用POST方法来发送要处理的信息时,我得到了错误的服务器-HTTP错误。为了保护我的URL,我使用在我的应用程序和JBoss(standalone.xml文件)中配置的基本身份验证。当我从web应用程序内部的表单(使用jQueryAjax)访问POST方法时

我在云服务器中有一个web应用程序。我的web应用程序的一个控制器将通过移动应用程序访问的URL外部化(使用JavaScript;我正在使用Tianium为Android和iOS开发)。我可以毫无问题地访问GET方法,获得我想要的,但是当我调用POST方法来发送要处理的信息时,我得到了错误的服务器-HTTP错误。为了保护我的URL,我使用在我的应用程序和JBoss(standalone.xml文件)中配置的基本身份验证。当我从web应用程序内部的表单(使用jQueryAjax)访问POST方法时,没关系,所以我认为这是一个跨域问题

JBoss中是否有任何配置可以让我的web应用程序接收来自任何其他域的POST调用(当然,提供正确的用户名/密码对)


提前谢谢

通常,这些跨域问题与浏览器有关,而与服务器无关。浏览器将限制您在当前页面的域中使用AJAX更新的能力。有一些变通方法,比如JSONP,但我不知道这是否适用于POST

我们决定使用第三方代理库。这个代理servlet允许您通过添加一个简单的web.xml,就好像发布到本地可访问的域一样。这样做,我们也不必去搞乱JSONP,直接的JSON就可以了

我们使用它将多个不同的路径转发到多个不同的服务器(在同一个web应用程序中,可以有多个转发器使用此方法)。我们的web.xml只是一系列servlet映射(一个用于指向基本路径的每个外部RESTful服务):


肌尼泊尔
org.mitre.dsmiley.httpproxy.ProxyServlet
塔格图里
http://external-web-app.com/basePath
日志
真的
肌尼泊尔
/内部基本路径/*

通常,这些跨域问题与浏览器有关,而不是与服务器有关。浏览器将限制您在当前页面的域中使用AJAX更新的能力。有一些变通方法,比如JSONP,但我不知道这是否适用于POST

我们决定使用第三方代理库。这个代理servlet允许您通过添加一个简单的web.xml,就好像发布到本地可访问的域一样。这样做,我们也不必去搞乱JSONP,直接的JSON就可以了

我们使用它将多个不同的路径转发到多个不同的服务器(在同一个web应用程序中,可以有多个转发器使用此方法)。我们的web.xml只是一系列servlet映射(一个用于指向基本路径的每个外部RESTful服务):


肌尼泊尔
org.mitre.dsmiley.httpproxy.ProxyServlet
塔格图里
http://external-web-app.com/basePath
日志
真的
肌尼泊尔
/内部基本路径/*

您的意思是,如果使用GET,web调用可以正常工作,但如果切换到POST,则会失败?创建一个可能没有参数的基本web服务方法并进行POST调用。我更可能猜你的问题在于你传递的参数。您是在查询字符串中还是在消息正文中传递它们?我是second@Martin。如果它适用于
GET
s,尽管不能保证,但也应该适用于
POST
。您不是必须进行一些配置才能启用
GET
s吗?您是否500%确定发送了
POST
所需的所有内容?您是说如果使用GET,web调用可以正常工作,但如果切换到POST,则会失败?创建一个可能没有参数的基本web服务方法并进行POST调用。我更可能猜你的问题在于你传递的参数。您是在查询字符串中还是在消息正文中传递它们?我是second@Martin。如果它适用于
GET
s,尽管不能保证,但也应该适用于
POST
。您不是必须进行一些配置才能启用
GET
s吗?您是否有500%的把握发送了
帖子所需的所有内容?
   <servlet>
      <servlet-name>MyOneProxy</servlet-name>
      <servlet-class>org.mitre.dsmiley.httpproxy.ProxyServlet</servlet-class>
      <init-param>
         <param-name>targetUri</param-name>
         <param-value>http://external-web-app.com/basePath</param-value>
      </init-param>
      <init-param>
         <param-name>log</param-name>
         <param-value>true</param-value>
      </init-param>
   </servlet>
   <servlet-mapping>
      <servlet-name>MyOneProxy</servlet-name>
      <url-pattern>/internalBasePath/*</url-pattern>
   </servlet-mapping>