ajax调用sharepoint托管了wcf服务错误请求

时间:2013-08-01 18:30:03

标签: ajax json wcf

我在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 }),

但没有雪茄。任何帮助将不胜感激!

由于

1 个答案:

答案 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);