2012-08-02 44 views
-2

我嘗試使用JQuery調用webservices。 我如何使代碼波紋管工作?使用JQuery調用webservices ...我如何使代碼工作

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> 

我錯過了什麼?

問候, 安德里安

+1

究竟不起作用?你收到什麼錯誤信息? – 2012-08-02 07:18:52

+0

服務器端的外觀是什麼樣的? – Flash 2012-08-02 07:20:45

+0

allert沒有返回國家信息或alwawys返回錯誤消息....任何想法? – 2012-08-02 07:27:09

回答

0

如果你的錯誤是一樣的東西

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

比我希望的是由CORSrestriction引起的。

如果該服務不支持CORS,則在客戶端使用此服務的唯一方法是在您的服務器上使用代理。

更多的資源,如果你有興趣。

http://enable-cors.org/

CORS on MDN

Using CORS @ html5rocks.com通過Monsur侯賽因

NEW TRICKS IN XMLHTTPREQUEST2由Eric Bidelman

+0

我的錯誤返回===>「undefined」 – 2012-08-02 07:41:52

+0

@ANDRIN嘗試打開Firebug /開發人員控制檯查看實際錯誤。 你在alert中看到了undefined,因爲無論你在'msg'中獲得的是實際上沒有'd'鍵的ajax' Object'。 – Sujay 2012-08-02 07:47:25

+0

我的Firefox Web開發者控制檯返回:[15:03:57.939]選項http://www.webservicex.net/country.asmx/GetCountryByCurrencyCode [HTTP/1.1 200 OK 265ms] – 2012-08-02 08:05:57

0

嘗試訪問:http://www.webservicex.net/country.asmx/GetCountryByCurrencyCode?CurrencyCode=AFA

返回的數據的格式是XML。所以我認爲你應該在你的ajax調用中使用xml格式。

編輯

好吧,我設法使它與jquery plugin的工作有所幫助。

<!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> 

試試看。

+0

這就是我所做的...看到---> var requestData =「{'CurrencyCode':'」+ curcode +「'}」; – 2012-08-02 07:32:55

+0

將dataType從json更改爲xml不會影響任何內容...仍然是相同的錯誤 – 2012-08-02 07:36:09

+0

@ANDRIN然後我覺得不幸的是,答案可能是'不',沒有簡單的方法可以用jquery ajax檢索跨域xml數據。看到類似的問題:http://stackoverflow.com/q/2942673 – ChuanRocks 2012-08-02 07:53:53

相關問題