【发布时间】:2013-03-21 13:04:37
【问题描述】:
我开发了一个 WCF Web 服务,由 jQuery 调用。 WCF Web 服务和启用 WCF Web 服务的 AJAX 客户端运行在不同的 Web 服务器上。
这里是 Web 服务的定义。
[ServiceContract]
interface IPersonService
{
[OperationContract]
Person InsertPerson(Person person);
}
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class PersonService : IPersonService
{
...
[WebInvoke(UriTemplate = "/POST/PersonPost", Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
public Person InsertPerson(Person person)
{
Debug.WriteLine("POST:[PersonId = {0} PersonName = {1}]", person.Id, person.Name);
return new Person(person.Id, person.Name);
}
}
[DataContract]
public class Person
{
[DataMember]
private string id;
[DataMember]
private string name;
public Person(string id, string name)
{
this.id = id;
this.name = name;
}
public string Id { get; set; }
public string Name { get; set; }
public override string ToString()
{
var json = JsonConvert.SerializeObject(this);
return json.ToString();
}
}
这里是客户端:
$.ajax({
type: "POST",
data: { "id": "Mehrere ;;; trennen", "name": "GetPerson" },
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
processData: false,
crossDomain: true,
url: "http://localhost:59291/Person/POST/PersonPost",
success: function (data) {
alert("Post erfolgreich: ");
},
error: function (xhr, ajaxOptions, thrownError) {
alert("Fehler Post: Status " + xhr.status + " AntwortText " + xhr.responseText);
}
});
我得到 HTTP 代码 200。这还不错吧?但是有人可以告诉我,我怎样才能访问 jQuery 客户端发送给 WCF 服务的数据???
谢谢
【问题讨论】:
-
你试过 IE 和 Firefox 吗?一个给你一个错误而另一个没有? (我问的是一个特定的原因,而不仅仅是钓鱼)。
-
IE 说 http Code 200,Chrome 什么也不说
-
你弄明白了吗?对于未来的读者来说,让人们知道解决方案总是好的。
标签: c# jquery wcf web-services post