2013-08-01 3 views
1

У меня есть служба WCF, размещенная в Sharepoint 2010 (поэтому нет необходимости в файле конфигурации -> ServiceHost Factory установлен в MultipleBaseAddressWebServiceHostFactory).ajax call sharepoint hosting wcf service bad request

Мой интерфейс сервиса:

[OperationContract] 
    [WebInvoke(
     Method = "POST", 
     BodyStyle = WebMessageBodyStyle.WrappedRequest, 
     RequestFormat = WebMessageFormat.Json, 
     ResponseFormat = WebMessageFormat.Json)] 
    List<Course> GetAllCoursesByPerno(string empPerno); 

Мой Аякса вызов:

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

Но нет сигары. Любая помощь будет оценена!

Thanks

ответ

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