-2

我尝试用 JQuery 调用 web 服务。我怎样才能使下面的代码工作?

   function TEST() {
              var curcode = "AFA";
              var serviceURL = "http://www.webservicex.net/country.asmx/GetCountryByCurrencyCode";
              var requestData = "{'CurrencyCode':'" + curcode + "'}"; 

                $.ajax({
                          type: "POST",
                          contentType: "application/json; charset=utf-8",
                          url: serviceURL,
                          data: requestData,
                          dataType: 'json',
                          success: function(msg)
                                  {
                                        var response = msg.d;  
                                    alert("response.Message : " + response.Message);
                                  },
                          error: function(msg)
                               {
                                  alert("error msg : " + msg.d);
                                 }    
              });
                  }
 </script>

我错过了什么 ?

问候, 安德里安

4

2 回答 2

0

如果您的错误类似于

XMLHttpRequest cannot load http://www.webservicex.net/country.asmx/GetCountryByCurrencyCode. Origin <Your URL> is not allowed by Access-Control-Allow-Origin.

比我希望是由CORS 限制引起的。

如果该服务不支持 CORS,则在客户端使用此服务的唯一方法是在您的服务器上使用代理。

如果您有兴趣,请提供更多资源。

http://enable-cors.org/

MDN 上的 CORS

Monsur Hossain使用 CORS @ html5rocks.com

Eric Bidelman在 XMLHTTPREQUEST2中的新技巧

于 2012-08-02T07:32:38.553 回答
0

尝试访问:http ://www.webservicex.net/country.asmx/GetCountryByCurrencyCode?CurrencyCode=AFA

返回数据的格式为xml。所以我认为你应该在你的ajax调用中使用xml格式。

编辑

好的,我设法在jquery 插件的帮助下使它工作。

<!DOCTYPE HTML>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="js/jquery.xdomainajax.js"></script>
<script>
jQuery(document).ready(function($) {
     $.ajax({
         url: 'http://www.webservicex.net/country.asmx/GetCountryByCurrencyCode?CurrencyCode=AFA',
         type: 'GET',
        success: function(res) {
            alert(res.responseText);
        }
    });
});
</script>
</head>
<body>
</body> 
</html>

试试看。

于 2012-08-02T07:29:22.240 回答