【发布时间】:2010-12-12 18:59:38
【问题描述】:
我编写了一个非常简单的 wcf 休息服务,当我通过 fiddler 向它发出请求时它似乎工作正常,但从 JQuery 调用它时我无法让它工作。
服务:
[ServiceContract]
public interface IService1
{
[OperationContract]
[WebInvoke(Method = "POST",
UriTemplate = "customers/{regionId}",
ResponseFormat = WebMessageFormat.Json
)]
Customer[] GetCustomers(String regionId);
}
[DataContract]
public class Customer
{
[DataMember]
public Guid Id { get; private set; }
[DataMember]
public String Name { get; private set; }
public Customer(Guid id, String name)
{
Id = id;
Name = name;
}
}
public class Service1 : IService1
{
public Customer[] GetCustomers(String regionId)
{
return new[]
{
new Customer(Guid.NewGuid(), "john"),
new Customer(Guid.NewGuid(), "pete"),
new Customer(Guid.NewGuid(), "ralph")
};
}
}
我可以通过 fiddler 向该服务发出请求,它会返回预期的 json。但是,当我尝试通过萤火虫控制台使用 JQuery ajax 调用它时,它总是失败。这是电话:
$.ajax({
类型:“发布”,
数据: ”{}”,
网址:“http://127.0.0.1:8081/json/customers/1”,
contentType: "应用程序/json; charset=utf-8",
数据类型:“json”,
成功:功能(资源)
{
警报(“成功”);
},
错误:函数(xhr)
{
alert('失败:'+xhr.responseText);
}
});
我总是收到失败的警报,并且 responseText 总是空白。任何想法将不胜感激。
【问题讨论】: