我使用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()方法调用。
答案 0 :(得分:0)
您还可以在当前域上使用ProxyHandler。从您的客户端代码,调用代理处理程序(相同的域),然后可以调用REST服务(跨域)。
如果您需要一个起点,请查看有关创建HtppHandler(代理)的这些文章。
How To Create an ASP.NET HTTP Handler by Using Visual C# .NET