繁体   English   中英

使用Jquery WCF REST入门套件预览2进行跨域Ajax调用的问题

[英]Issue with Cross Domain Ajax call using Jquery WCF REST Starter Kit Preview 2

我使用WCF REST入门工具包preview2创建并托管了我的WCF REST API。 它支持动态响应和请求格式类型(XML和JSON)。如果我通过Jquery,Microsoft.Http在同一域中使用服务,那么一切正常。

我的cs代码如下:

private void GetData()
    {
        string url = string.Format("http://myhost/Services/UserService.svc/people/");
        HttpClient client = new HttpClient();
        HttpResponseMessage responseMessage = client.Get(url);
        responseMessage.EnsureStatusIsSuccessful();
        using (responseMessage)
        {
            string res = responseMessage.Content.ReadAsString();
            Response.Write(res);
        }
    }

现在当我尝试使用来自另一个域的Jquery来使用我的服务时,响应是在IE8中进行的,但是在Mozilla和Chrome中我得到了null响应我的jquery代码如下:

 function loadData() {
    var path = "http://myhost/Services/UserService.svc/people/";       
    $.ajax({
        type: "GET",
        url: path,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async: false,
        success: function(response) {               
            if (response != null) {
                displayData(response);                   
            }
        }
    });
}

我也尝试设置数据类型:“jsonp”和.getJson()方法调用。

您还可以在当前域上使用ProxyHandler。 从您的客户端代码,调用代理处理程序(相同的域),然后可以调用REST服务(跨域)。

如果您需要一个起点,请查看有关创建HtppHandler(代理)的这些文章。

如何使用Visual C#.NET创建ASP.NET HTTP处理程序

Boilerplate HttpHandler - Scott Hanselman

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM