Следующий код выполняется правильно, когда у ключа данных нет данных для отправки, то есть data: "{}" пустой объект JSON, а веб-служба не принимает параметров. Я хотел бы опубликовать некоторые данные в веб-сервис, но у меня проблемы.
Когда я пытаюсь установить это для данных: "{'name': 'Niall', 'фамилия': 'Smith'}", я получаю ошибку
{"Message":"Invalid web service call, missing value for parameter: \u0027json\u0027.","StackTrace":" at System.Web.Script.Services.WebServiceMethodData.CallMethod(Object target, IDictionary`2 parameters)\r\n at System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(Object target, IDictionary`2 parameters)\r\n at System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary`2 rawParams)\r\n at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.InvalidOperationException"}
Веб-сервис не выполняется.
Это мой вызов Jquery для отправки моих данных обратно на сервер.
$.ajax({
type: "POST",
url: "/WebServices/BasketServices.asmx/AddItemToBasket",
data: "{'name':'niall'}", // Is this Correct??
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnItemAddedSuccess
});
function OnItemAddedSuccess(result,eventArgs) {
//deserialize the JSON and use it to update the Mini Basket
var response = JSON.parse(result.d);
}
вот мой веб-сервис
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class BasketServices : System.Web.Services.WebService
{
[WebMethod(true)]
public string AddItemToBasket(string json)
{
//do stuff
return myString.toJSON();
}
}
В чем может быть проблема? Это формат данных JSON для публикации? Может быть, я не установил правильные атрибуты на своем веб-сервисе. Как насчет проблем, упомянутых в Пост Дейва Уорда
Я перепробовал все, что мог придумать. У кого-нибудь есть идеи?