2013-03-11 45 views
4

我正在使用SOAP Web服务从其他服务器获取响应。我正在使用jquery ajax调用来从服务器获取数据。但是我从服务器获取(零)状态代码。如何使用JQuery使SOAP请求跨域

如何使用Jquery实现跨域的ajax调用?

+1

之前问这个问题,显示你的代码,你已经在这个问题上所做的努力。 在服务器允许的情况下,您无法进行跨域请求。 CORS的支持基本上由HTTP中的“Access-Control-Allow-Origin”头部检查。 http://enable-cors.org/。如果服务器支持CORS,则提供回调。 – 2013-03-11 06:26:49

+0

有一个jquery插件,它使用YQL API做跨域请求:https://github.com/padolsey/jQuery-Plugins/tree/master/cross-domain-ajax/ – 2013-03-11 06:54:55

+0

可能的重复[是否有可能使用jquery获取跨域SOAP请求](http://stackoverflow.com/questions/12090036/is-it-possible-to-get-cross-domain-soap-request-using-jquery) – nneonneo 2013-03-12 03:16:16

回答

1

而不是尝试使用jQuery获取跨域数据,请尝试使用PHP或允许跨域访问的其他语言获取数据。创建一个加载SOAP数据的PHP页面,并使用jQuery将该信息嵌入到页面中。虽然它不是一个SOAP连接,来说明这个想法,你可以创建这个PHP页面加载YouTube视频:

<?php 
$vid = filter_var($_POST['id'], FILTER_SANITIZE_STRING); 
?> 
<?php if ($vid) : ?> 
    <iframe title="YouTube video player" width="510" height="317" src="http://www.youtube.com/embed/<?php echo $vid; ?>?autoplay=1" frameborder="0" allowfullscreen></iframe> 
<?php endif; ?> 

然后使用jQuery来显示它 - 点击一个链接可以调用这个函数:

function loadContent() { 
$(this).parent().load("/youtube-video.php",{id:video_id},showNewContent()); 
} 
0

你的问题似乎很模糊。但下面是做跨域请求jQuery中的方法之一:

$(function() { 
      $.ajax({ 
       type:'GET', 
       dataType:'jsonp', 
       jsonp:'jsonp', 
       url:'http://api.stackoverflow.com/1.0/tags/', 
       success:function(data) { 
        $.each(data["tags"], function(index, item) { 
         var $tag = item.name; 
         var $count = item.count; 
         $("body").append('<div class="stackoverflow"> The Tag 
       <span class="q-tag">' + $tag + '</span> has < 
span class="q-count">' 
+ $count + '</span> Questions.</div>') 
        }); 
       }, 
       error:function() { 
        alert("Sorry, I can't get the feed"); 
       } 
      }); 
     }); 

DEMO

DESCRIPTION OF THE ABOVE