Mã sau đây thực hiện đúng khi khóa dữ liệu không có dữ liệu để gửi, tức là dữ liệu: "{}" đối tượng JSON trống và webservice không có tham số. Tôi muốn đăng một số dữ liệu lên webservice nhưng tôi gặp sự cố.Gọi điện .Net webservice với Jquery đang gây ra sự khốn khổ khi cố gắng đăng dữ liệu
Khi tôi cố gắng thiết lập này để dữ liệu: "{ 'name': 'Niall', 'họ': 'Smith'}", tôi nhận được một lỗi
{"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"}
Các webservice không được thực hiện.
Đây là cuộc gọi Jquery của tôi để đăng dữ liệu của tôi trở lại máy chủ.
$.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);
}
đây là WebService tôi
[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();
}
}
Điều gì có thể vấn đề là gì? Có phải định dạng của dữ liệu JSON được đăng không? Nó có thể được rằng tôi đã không thiết lập các thuộc tính chính xác trên WebService của tôi. Điều gì về các vấn đề được đề cập đến trong Dave Ward's post
Tôi đã thử mọi thứ tôi có thể nghĩ đến. Có ai có ý tưởng nào?
+1, điều này giúp tôi vượt qua vấn đề của mình. Vì anh ta mong đợi json là một chuỗi và không phải là một loại phức tạp trong dịch vụ, nên thực sự là 'var data = {'json': 'niall'};' theo sau bởi 'dữ liệu: JSON.stringify (data),' later on . – DougJones