POSTing JSON data to WCF REST
- by Randall Sexton
I'm trying to send data from a client application using jQuery to a REST WCF service based on the WCF REST starter kit.
Here's what I have so far.
Service Definition:
[WebHelp(Comment = "Save PropertyValues to the database")]
[WebInvoke(Method = "POST", UriTemplate = "PropertyValues_Save",
BodyStyle = WebMessageBodyStyle.WrappedRequest,
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json)]
[OperationContract]
public bool PropertyValues_Save(Guid assetId, Dictionary<Guid, string> newValues) { ... }
Call from the client:
$.ajax({
url:SVC_PROPERTYVALUES_SAVE,
type: "POST",
contentType: "application/json; charset=utf-8",
data: jsonData,
dataType: "json",
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus + ' ' + errorThrown);
},
success: function(data) {
if (data) {
alert('Values saved'); $("#confirmSubmit").dialog('close');
}
else {
alert('Values failed to save'); $("#confirmSubmit").dialog('close');
}
}
});
Example of the JSON being passed:
{
"assetId": "d70714c3-e403-4cc5-b8a9-9713d05b2ee0",
"newValues": [
{
"key": "bd01aa88-b48d-47c7-8d3f-eadf47a46680",
"value": "0e9fdf34-2d12-4639-8d70-19b88e753ab1"
},
{
"key": "06e8eda2-a004-450e-90ab-64df357013cf",
"value": "1d490aec-f40e-47d5-865c-07fe9624f955"
}
]
}
I'm using Windows Authentication on the virtual directory. When I call operations that are GETs, everything is fine. This code is prompting the browser to log in. When I enter my credentials, I simply get an alert in my browser which says "error undefined".
Even if you can't help my specific error, do you see anything that looks wrong from glancing?
I've been beating my head on this nearly all day.
Thanks in advance.