使用wcf rest web服务的ajax请求

时间:2012-12-10 12:08:16

标签: html ajax web-services

我想从其他网站调用Web服务,并使用Ajax调用在html页面中获取响应。

数据应该是网络服务的响应。 我已经尝试了很多,但我没有得到任何解决方案。我也越过了浏览器,当使用ajax请求调用webservice时就存在问题。

我的网络服务代码:

    [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

1 个答案:

答案 0 :(得分:0)

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

希望有所帮助