jQuery Ajax 在 url 路由后不调用 webmethod

发布于 2024-11-30 08:59:51 字数 1473 浏览 1 评论 0原文

我的 jquery ajax 函数没有调用 webmethod。 jquery 函数返回 Web 服务页面的 html。 函数不明白“ebulten_add”是一个webmethod!

“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 中的 Web 方法

    [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";            
    }
}

my jquery ajax function is not calling webmethod. jquery function return webservice page's html.
function is not understand "ebulten_add" is a webmethod!

"url:ajaxPage.aspx/e_bulten"

to write webmethod name or not write is same.. both of return 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();
                }
            });`

web method in 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";            
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

澉约 2024-12-07 08:59:51

正如我所看到的,您返回的是字符串而不是 json,

因此只需更新您的 dataType: 'text' 就可以了

As I can see, you are returning string not json

so just update your dataType: 'text' and it should be ok

暗藏城府 2024-12-07 08:59:51

同意@SenadM。更改 dataType:text 或从 webmethod 返回 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\"}";            
    }
}

另外,请确保在 web.config 中启用了 POST:

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

Agree with @SenadM. Either change the dataType:text or return JSON from your webmethod:

[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\"}";            
    }
}

Also, make sure POST is enabled in your web.config:

<configuration>
    <system.web>
    <webServices>
        <protocols>
            <!-- <add name="HttpGet"/> --> <!-- uncomment to enable get -->
            <add name="HttpPost"/>
        </protocols>
    </webServices>
    </system.web>
</configuration>
爱的故事 2024-12-07 08:59:51

只需将 var settings = newFriendlyUrlSettings {AutoRedirectMode = RedirectMode.Permanent}; 更改为 varsettings = newFriendlyUrlSettings {AutoRedirectMode = RedirectMode.Off}; 这应该可以解决问题。

Just Change var settings = new FriendlyUrlSettings {AutoRedirectMode = RedirectMode.Permanent}; to var settings = new FriendlyUrlSettings {AutoRedirectMode = RedirectMode.Off}; This should solve the problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文