Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WCF - "Encountered unexpected character 'c'."

Tags:

jquery

wcf

I am trying to do something that I thought would be simple. I need to create a WCF service that I can post to via JQuery. I have an operation in my WCF service that is defined as follows:

[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";
  }
}

I then try to access this operation from an ASP.NET page via JQuery. My JQuery code to access this operation looks like the following:

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

When I execute this script, the error handler is tripped. In it, I receive an error that says:

"Encountered unexpected character 'c'."

This message is included with a long stack trace. My question is, what am I doing wrong? I have received other posts such as this one (How to post an array of complex objects with JSON, jQuery to ASP.NET MVC Controller?) without any luck. How do I get this basic interaction working?

Thank you!

like image 700
Villager Avatar asked Mar 20 '10 19:03

Villager


1 Answers

I think you have to stringify your json-data in the request. More info here. You might also want to parse incoming response data, since it will be stringified in return. A common library suited for the task kan be found here.

Eg.: data: '{ message: "message", urgency: "1" }',

like image 55
maets Avatar answered Oct 26 '22 18:10

maets