#c# #jquery #.net #ajax
#c# #jquery #.net #ajax
Вопрос:
Я пытался использовать следующий код для извлечения данных с веб-сервера (test.asmx.cs), но почему-то это всегда выдает мне ошибку … кто-нибудь знает, что происходит не так?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
namespace Test
{
/// <summary>
/// Summary description for autocomplete
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class autocomplete : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod]
public static string streetNameSearch(int id)
{
return "Melbourne|North Melbourne|South Melbourne|Richmond|North Richmond";
}
}
}
И следующий код jquery был размещен в pgTest.aspx
$("#example").keyup(function () {
$.ajax({
type: "POST",
url: "pgTest.aspx/streetNameSearch",
data: '{"id":"' 1 '"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
var returnData = data.d;
alert(returnData)
},
error: function (xhr, ajaxOptions, thrownError) {
alert(ajaxOptions);
},
timeout: function (data) {
alert("time out");
}
});
});
Комментарии:
1. Что за ошибка выдается?
2. @jon3laze: ошибка — это просто «error»,
3. установите точку останова в вашем методе streetNameSearch и проверьте, вызван ли он?
4. @jayantha, это перешло к части ошибки и даже не удалось вызвать метод streetNameSearch
Ответ №1:
Раскомментируйте эту строку:
// [System.Web.Script.Services.ScriptService]
Атрибут ScriptService позволяет всем методам службы ASMX отвечать необработанным JSON.
Ответ №2:
Помимо раскомментирования ScriptService
строки, почему ваш $.ajax()
метод нацелен на ASPX-путь, в то время как опубликованный вами код взят из службы ASMX? Это определенно может вызвать проблему.
Ответ №3:
Попробуйте это
public static JsonResult streetNameSearch(string id)
{
return Json("Melbourne|North Melbourne|South Melbourne|Richmond|North Richmond");
}
И в вашем javascript измените следующим образом
data: {id:"1"}
Комментарии:
1. @Jayanthan: похоже, что JsonResult и Json () не поддерживаются в веб-сервисе .net c #