【发布时间】:2013-07-13 23:16:52
【问题描述】:
我已经成功使用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 表示,其属性与我正在调用的函数的参数名称相匹配。
【问题讨论】:
-
为什么要使用成功回调+
.done? -
Person的结构是什么?您还在 testObj 中将地址拼写为“addess”。
-
尝试在服务器端开启追踪;跟踪应该说明为什么服务器认为请求是错误的。
-
@Edward addess 只是一个大错字:)。我解决了这个问题,但问题仍然存在。我将发布结构
-
@Johan 只是 jquery docs for ajax post 的示例代码。请忽略那部分。
标签: c# jquery json wcf web-services