jQuery Ajax не вызывает webmethod после URL-маршрутизации - PullRequest
1 голос
/ 16 августа 2011

моя jjery-функция ajax не вызывает webmethod.Функция jquery возвращает HTML страницы веб-сервиса.функция не понятна "ebulten_add" - это веб-метод!

"url: ajaxPage.aspx / e_bulten"

для записи имени веб-метода или без записи одинаково .. оба возвращаются ajaxPage.aspx html.

$.ajax({
                type: "POST",
                url: 'ajaxPage.aspx/ebulten_Add',
                data: "{ebEmail:'" + Ebemail + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (result) {

                    $("#span_result").hide();
                    $("#span_spinner").hide();
                    $("#span_result").html(result.d).fadeIn();
                },
                error: function (msg) {                     
                    $("#span_result").hide();
                    $("#span_spinner").hide();
                    $("#span_result").html("Lütfen tekrar deneyin.").fadeIn();
                }
            });`

веб-метод в ajaxPage.aspx

    [System.Web.Services.WebMethod]
public static string ebulten_Add(string ebEmail)
{
    if (ebEmail == "Email")
    {
        return "*Bilgilerinizi Girmediniz";
    }
    else
    {
        List<ListItem> ebList = new List<ListItem>();           
        ebList.Add(new ListItem("@Eb_email", ebEmail));
        BL.Atom.GetByVoid("spEbulten_Add", ebList);
        return "*E-Bülten kaydınız başarıyla tamamlanmıştır";            
    }
}

Ответы [ 3 ]

1 голос
/ 16 августа 2011

Как я вижу, вы возвращаете строку, а не json

, поэтому просто обновите ваш dataType: 'text', и все должно быть в порядке

0 голосов
/ 24 февраля 2017

Просто измените var settings = new FriendlyUrlSettings {AutoRedirectMode = RedirectMode.Permanent}; на var settings = new FriendlyUrlSettings {AutoRedirectMode = RedirectMode.Off}; Это должно решить проблему.

0 голосов
/ 16 августа 2011

Согласен с @SenadM.Либо измените dataType:text или верните JSON из вашего веб-метода:

[System.Web.Services.WebMethod]
public static string ebulten_Add(string ebEmail)
{
    if (ebEmail == "Email")
    {
        return "{ \"response\": \"*Bilgilerinizi Girmediniz\"}";
    }
    else
    {
        List<ListItem> ebList = new List<ListItem>();           
        ebList.Add(new ListItem("@Eb_email", ebEmail));
        BL.Atom.GetByVoid("spEbulten_Add", ebList);
        return "{ \"response\": \"*E-Bülten kaydiniz basariyla tamamlanmistir\"}";            
    }
}

Кроме того, убедитесь, что POST включен в вашем web.config:

<configuration>
    <system.web>
    <webServices>
        <protocols>
            <!-- <add name="HttpGet"/> --> <!-- uncomment to enable get -->
            <add name="HttpPost"/>
        </protocols>
    </webServices>
    </system.web>
</configuration>
...