使用JQuery和AJAX从远程计算机调用JAX-WS Web服务

时间:2015-09-16 10:40:56

标签: ajax web-services jax-ws

我是Java SOAP Web服务的新手。最近我使用JAX-WS规范创建了一个Web服务。这部署在我在我的机器中使用的WebLogic服务器中。现在,当我想从另一台服务器上用JavaScript远程机器编写的Web应用程序调用Web服务时,它会给我以下错误。

我还浏览过其他类似帖子,例如this cross-domain invocation denied

我使用JavaScript和SoapClient.js库发送请求。

我的调用代码是:

SOAPClient.invoke("http://inhydkvaranasi1:7001/TodoWS/TodoListService",
            "getTodos", p1, true, function(data) {
                $("#todolist").html('');
                if (Object.keys(data).length < 1) {
                    $("#todolist").html(
                            "<h4>No Todos Available right now!</h4>");
                } else {
                    Object.keys(data).forEach(
                            function(key) {
                                $("#todolist").append(
                                        "<li>" + data[key]["task1"]
                                                + "(Priority "
                                                + data[key]["id0"]
                                                + ") </p>");
                            });
                }
            });

XMLHttpRequest()对象发送的请求在XML响应中没有得到Access-Control-Allow-Origin的响应头。

我怎么能解决这个问题?这样我的Web服务就可以被不同服务器上不同域的任何用户公开使用。

1 个答案:

答案 0 :(得分:0)

查看CORS HTTP headers(来自codingpedia.org):

客户端HTTP请求标头。这些是客户端在发出HTTP请求时可能使用的标头,以便使用交叉共享功能:

  
      
  • Origin URI,表示发起请求的服务器。它不包含任何路径信息,只包括   服务器名称
  •   
  • Access-Control-Request-Headers在发出预检请求时使用,让服务器知道在什么时候使用哪个HTTP标头   实际请求
  •   
  • Access-Control-Request-Method在发出预检请求时使用,让服务器知道在使用时会使用哪种HTTP方法   实际请求
  •   

服务器端HTTP响应标头。这些是服务器为访问控制请求发回的HTTP标头: