我已经成功使用 wcf webservices 做了一些简单的操作。现在我正在尝试使用 jquery ajax post 传递一个更复杂的对象,但这次我总是遇到同样的错误(错误请求)。我已经搜索了很多,但仍然无法确定问题所在
这是我正在尝试做的事情:
我的界面
[OperationContract(Name = "PersonAddress")]
[WebInvoke(UriTemplate = "AddPersonAddress/", Method = "POST", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
PersonAddress AddPersonAddress(PersonAddress objPA);
我的 Javascript 测试代码:
var testObj = {
cpostal: "Postal 1",
address: "My address",
zone:""
}
var objectAsJson = JSON.stringify({ objPA: testObj });
$.post('../../App_Services/DataService.svc/PersonAddress/', objectAsJson, function (data) {
alert("success");
});
PersonAddress
结构体
public class PersonAddress
{
public string cpostal { get; set; }
public string address { get; set; }
public string zone { get; set; }
}
Chrome 控制台帖子
{"objP":{"cpostal":"Postal 1","address": "My address","zone":""}}
根据这些文章:
我必须发送一个字符串,它是 JS 对象的 JSON 表示,其属性与我正在调用的函数的参数名称匹配。