簡體   English   中英

Jquery AJAX與ASP.NET WebMethod返回整頁

[英]Jquery AJAX with ASP.NET WebMethod Returning Entire Page

我正在做一些簡單的測試(准備一個更大的項目)來使用JQuery AJAX調用ASP.NET WebMethod。 在我的示例中,我的WebMethod返回一個簡單的字符串。 但是,當我嘗試使用JQuery調用它時,我會返回整個HTML頁面內容,而不僅僅是我的字符串。 我錯過了什么?

客戶端 :

$(document).ready(function ready() {
        $("#MyButton").click(function clicked(e) {
            $.post("Default.aspx/TestMethod",
                {name:"Bob"},
                function(msg) {
                    alert("Data Recieved: " + msg);
                },
                "html"
            );
        });
    });

服務器端:

using System;
using System.Web.Services;

namespace JqueryAjaxText
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        [WebMethod]
        public static string TestMethod(string name)
        {
            return "The value submitted was " + name;
        }
    }
}

看看這個鏈接。 我使用了他的一些其他帖子來成功調用WCF服務。 請務必查看相關文章:

http://encosia.com/2008/05/29/using-jquery-to-directly-call-aspnet-ajax-page-methods/

仔細閱讀文章,但基本上:

  $("#Result").click(function() {
    $.ajax({
      type: "POST",
      url: "Default.aspx/GetDate",
      data: "{}",
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      success: function(msg) {
        $("#Result").text(msg.d);
      }
    });
});

我想我對JQuery的$ .post命令中的“type”參數感到困惑。 在與一些人交談之后,似乎調用WebMethod的返回類型必須是“json”。 我試圖使用“html”。 一旦我將其改為“json”,然后一切正常。 顯然,用[WebMethod]修飾的方法只返回JSON,這就是我的掛機所在。

謝謝你們的回復。

嘗試將最后一個參數“html”更改為“text”。 此參數指定要返回的數據類型。

我有完全相同的問題:WebMethod返回整個HTML頁面而不是預期的數據。 對我來說,解決方案來自於更改〜/ App_Start / RouteConfig.cs內部的以下行:

settings.AutoRedirectMode = RedirectMode.Permanent;

settings.AutoRedirectMode = RedirectMode.Off;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM