我在Sharepoint 2010中托管了一个WCF服务(因此不需要配置文件 - > ServiceHost Factory设置为MultipleBaseAddressWebServiceHostFactory)。
我的服务界面:
[OperationContract]
[WebInvoke(
Method = "POST",
BodyStyle = WebMessageBodyStyle.WrappedRequest,
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json)]
List<Course> GetAllCoursesByPerno(string empPerno);
我的ajax电话:
var input = $j("#perno").val();
$j.ajax({
type: "POST",
url: "/_vti_bin/Project/Service.svc/GetAllCoursesByPerno",
dataType: "json",
//data: input,
data: '{"empPerno": "' + input + '"}',
contentType: "application/json; charset=utf-8",
processData: true,
success: function (data) {
var courseData = data;
},
error: function (e) {
alert(e.statusText);
}
});
我的方法:
public List<Course> GetAllCoursesByPerno(string empPerno)
{
.
.
.
.
}
我每次都收到400 Bad Request。我已经尝试过各种方法来编写数据;
data: '{"empPerno": "' + input + '"}',
data: JSON.stringify({ empPerno : input }),
但没有雪茄。任何帮助将不胜感激!
由于
答案 0 :(得分:0)
使用Microsoft ajax库进行调用。 这也避免了DateTime反序列化问题
Sys.Net.WebServiceProxy.invoke('/_vti_bin/YourSubfolder/SearchService.svc',
'EmptyMethod',
false,
{data: 'client data'},
function () {
console.log('Success', arguments);
},
function () {
console.log('Eroor', arguments);
}, this);