1

我有一个托管在 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 错误请求。我已经尝试了各种方式来组合数据;

data: '{"empPerno": "' + input + '"}',

data: JSON.stringify({ empPerno : input }),

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

谢谢

4

1 回答 1

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);
于 2013-10-08T16:14:43.053 回答