2012-12-10 43 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

这是正确的,您不能从客户端上下文中的不同域执行请求。 但是你可以做的是从你自己的服务器代码中的外部网站获取数据,然后将它作为服务提供给你的客户端。事实上,通常您需要为来自外部数据源的数据提供一些背景信息,因此无论如何您必须在将这些信息发送给客户端之前处理这些信息。

希望它有帮助