2010-11-01 3 views
0

Почему это не работает? (Я попробовал все!)jquery ajax get

$.ajax({ 
    type: "GET", 
    contentType: "application/json; charset=utf-8", 
    url: "Webservice.asmx/HelloWorld", 
    data: { param1: "aaa" }, 
    success: function (msg) { 
     alert(msg.d); 
    } 
}); 

веб-сервис

[WebMethod] 
    [ScriptMethod(UseHttpGet = true, XmlSerializeString = false, ResponseFormat = ResponseFormat.Json)] 
public string HelloWorld(string param1) 
{ 
return "Hello World"; 
} 

сообщение об ошибке

{ "Сообщение": "Invalid JSON примитивно:. Ааа", "StackTrace":»в System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject() \ r \ n в System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal (Int32 depth) \ r \ n в System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize (Строковый ввод, Int32 depthLimit, JavaScriptSerializer seri alizer) \ r \ n в System.Web.Script.Serialization.JavaScriptSerializer.Deserialize (сериализатор JavaScriptSerializer, ввод строки, тип типа, Int32 depthLimit) \ r \ n в System.Web.Script.Services.RestHandler.GetRawParamsFromGetRequest (контекст HttpContext , JavaScriptSerializer serializer, метод WebServiceMethodData methodData) \ r \ n в System.Web.Script.Services.RestHandler.GetRawParams (метод WebServiceMethodDataData, контекст HttpContext) \ r \ n в System.Web.Script.Services.RestHandler.ExecuteWebServiceCall (контекст HttpContext, WebServiceMethodData methodData)», "ExceptionType": "System.ArgumentException"}

ответ

1

попытаться сделать ваши данные полную строку как:

$.ajax({ 
    type: "GET", 
    contentType: "application/json; charset=utf-8", 
    url: "Webservice.asmx/HelloWorld", 
    data: '{ "param1": "aaa" }', 
    success: function (msg) { 
     alert(msg.d); 
    } 
}); 
1

С ASP.NET, ваш запрос Ajax час чтобы ПОСТ использовать JSON.

$.ajax({ 
    // type: "GET", 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "Webservice.asmx/HelloWorld", 
    data: '{ param1: value1, param2: value2 }', 
    success: function (msg) { 
     alert(msg.d); 
    } 
}); 

Для получения дополнительной информации обратитесь к this.

0

В качестве альтернативы использованию немного раздражающего для работы с проектами веб-сервисов я бы предложил посмотреть в asp.net mvc и просто использовать контроллеры для работы в качестве ваших «сервисов».