2012-12-10 76 views
0

我想從其他網站調用web服務,並使用Ajax調用在html頁面中獲取響應。使用wcf rest web服務的ajax請求

該數據應該是web服務的響應。 我試了很多,但我沒有得到任何解決方案。我還跨越了瀏覽器,使用ajax請求調用webservice時,問題就在那裏。

我的web服務代碼:

[ServiceContract] 
    public interface IService 
    { 

     [WebInvoke(Method = "GET",RequestFormat=WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)] 
     //[WebGet] 
     [OperationContract] 
     string GetData(string inputString); 
    } 

It is implemented as: 

    public string GetData(string inputString) 
     { 
      return "myData"; 
     } 


Javascript code (From my other website): 

<script type="text/javascript"> 
      function click_btn() { 
       $.ajax({ 
        type: "GET", 
        url: "http://192.168.15.213/MyService.svc/GetData/inputString=e", 
        contentType: "application/json", 
        success: function (jsonData) { 
         alert('Data: ' + jsonData); 
       `enter code here` }, 
        Error: function (e) { 
         alert('err: ' + e); 
        } 
       }); 
       return false; 
      } 
    </script> 

我收到錯誤404 method not allowed當我打電話從其他網站的web服務。

回答

0

這是正確的,您不能從客戶端上下文中的不同域執行請求。 但是你可以做的是從你自己的服務器代碼中的外部網站獲取數據,然後將它作爲服務提供給你的客戶端。事實上,通常您需要爲來自外部數據源的數據提供一些背景信息,因此無論如何您必須在將這些信息發送給客戶端之前處理這些信息。

希望它有幫助