的Javascript JSON对象和WCF web服务错误的请求
问题描述:
我已经成功地使用WCF web服务做一些简单的操作。现在我想通过一个更复杂的使用对象jQuery的AJAX职位,但这个时候,我总是有同样的错误(错误的请求)。我已经搜索了很多,但还是没能找出问题的Javascript JSON对象和WCF web服务错误的请求
这里就是我想要做的事:
我的界面
[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表示的参数名称相匹配我打电话的功能。
答
拉动大量的头发后:)终于设法得到它的工作。 基本上必须使用$的完整形式。 ajax而不是$。发布,以便指示内容类型“application/json; charset = utf-8”。现在没有意识到为什么发生这种情况。感谢所有谁试图帮助我
$.ajax({
type: "POST",
url: "../../App_Services/DataService.svc/PersonAddress",
data: objectAsJson,
contentType: "application/json; charset=utf-8",
dataType: "json",
// processdata: true,
success: function (data) {
alert("ok")
}
});
答
我建议改变如下行:
var objectAsJson = JSON.stringify({ PersonAddress: testObj });// This is adding a property "PersonAddress" to the object
要
var objectAsJson = JSON.stringify(testObj);// this is PersonAddress object itself
+0
感谢您的答复,但不幸的是它不起作用。我用新信息编辑帖子。 – Sandcar
你为什么要使用一个成功回调+'.done'的作品
码? – Johan
Person的结构是什么?你也在testObj中拼写地址为“adddess”。 – Edward
尝试在服务器端启用跟踪;痕迹应该说明为什么服务器正在考虑请求不好。 – carlosfigueira