JSON ARG не собираются в параметре POST метода

Ниже приведен контракт в интерфейсе IService

[OperationContract]
        [WebInvoke(UriTemplate = "/service1/Add", ResponseFormat = WebMessageFormat.Json,
            RequestFormat = WebMessageFormat.Json,
            Method = "POST",
            BodyStyle = WebMessageBodyStyle.WrappedRequest)]
        MyClass AddProperty(MyClass propertyArgs);

Ниже приводится моя реализация

public MyClass AddProperty(MyClass args)
        {
   //I always get args null here
}

Ниже приведен мой код для вызова выше службы

var settings = {
  "async": true,
  "crossDomain": true,
  "url": "url",
  "method": "POST",
  "headers": {
    "content-type": "application/json",
  },
  "processData": false,
  "data": '{"userid": 342507,"name": "markand"}'
}

$.ajax(settings).done(function (response) {
  console.log(response);
});

Проблема в том, что мой сервис позволяет собирать данные, отправленные из ajax. I get my args parameter always null.

1 ответ

  1. Попробуйте это и дайте мне знать, если это работает. Я использую его, и он прекрасно работает для меня

    var data = {"userid": 342507,"name": "markand"};
    $.ajax({
        contentType: "application/json; charset=utf-8",
        data: JSONstring.make(data),
        dataType: "json",
        type: "POST",
        url: "url",
        async: true,
        timeout: 90000,
        success: function (items) {
            //Your success handling here
        },
        error: function (obj, timeout, message) {
            //Your error handling here
        }
    });
    

    Editted: параметр должен содержать только данные для анализа в данном примере