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!
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" }',
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With