WCF - «Обнаружен неожиданный персонаж« c ».» - PullRequest
6 голосов
/ 20 марта 2010

Я пытаюсь сделать то, что мне показалось простым. Мне нужно создать службу WCF, которую я могу публиковать через JQuery. У меня есть операция в моей службе WCF, которая определяется следующим образом:

[OperationContract]
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest, RequestFormat=WebMessageFormat.Json, ResponseFormat=WebMessageFormat.Json)]
public string SendMessage(string message, int urgency)
{
  try
  {
    // Do stuff
    return "1";  // 1 represents success
  }
  catch (Exception)
  {
    return "0";
  }
}

Затем я пытаюсь получить доступ к этой операции со страницы ASP.NET через JQuery. Мой код JQuery для доступа к этой операции выглядит следующим образом:

function sendMessage(message) {
  $.ajax({
    url: "/resources/services/myService.svc/SendMessage",
    type: "POST",
    contentType: "application/json; charset=utf-8",
    data: ({ message: message, urgency: '1' }),
    dataType: "json",
    success: function (data) {
      alert("here!");
    },
    error: function (req, msg, obj) {
      alert("error: " + req.responseText);
    }
  });
}

Когда я выполняю этот скрипт, обработчик ошибок отключается. В нем я получаю сообщение об ошибке:

"Обнаружен неожиданный символ 'c'."

Это сообщение включено в трассировку длинного стека. У меня вопрос, что я делаю не так? Я получил другие сообщения, такие как этот ( Как разместить массив сложных объектов с JSON, jQuery в ASP.NET MVC Controller? ) без какой-либо удачи. Как мне заставить работать это базовое взаимодействие?

Спасибо!

1 Ответ

3 голосов
/ 29 июня 2012

Я думаю, что вы должны указать ваши json-данные в запросе. Подробнее здесь . Возможно, вы также захотите проанализировать входящие данные ответа, так как они будут преобразованы в строку. Общая библиотека, подходящая для задачи, может быть найдена здесь .

Например: данные: '{сообщение: "сообщение", срочность: "1"}',

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...