2010-03-10 110 views
1

我有這個AJAX代碼,但它似乎並沒有拋出'alert'方法。相反,沒有任何反應。我看着它與提琴手和得到這個錯誤信息: {"Message":"There was an error processing the request.","StackTrace":"","ExceptionType":""}簡單的AJAX不工作

我想調用的代碼隱藏稱爲MyWebMethod一個Web方法:

$.ajax({ type: "POST", 
      url: "Test.aspx/MyWebMethod", 
      data: "{" + username + "}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 

      success: function() { 
       alert("success"); 
      }, 

      fail: function() { 
       alert("Fail"); 
      } 
}); 

Web方法工作得很好,當我有一個頁面上的腳本管理器,但我想刪除腳本管理器,並認爲使用AJAX將是最好的方法。

感謝

+0

首先嚐試使用NO數據,調用將返回類似服務器時間戳的內容...作爲字符串並提醒。確保你的web方法名稱「用戶名」匹配...編輯:我尾隨在頁面上的編輯...在這一點上可能不相關... – 2010-03-10 22:33:13

回答

1

我認爲,如果你改變failerror,你會得到第二次警告框。

[編輯]我想如果你再改

data: "{" + username + "}" 

data: "{ 'username': '" + username + "' }" 

你會得到第一個警報,但很難知道,沒有看到服務你打電話。

+0

嗨,我改變它爲錯誤,並提示確實顯示。但我不知道它爲什麼失敗 – 2010-03-10 22:15:32

+0

啊,抱歉沒有看到您的編輯。這解決了問題!但是,web方法返回一個布爾值。我如何從「成功:」部分(或從通話中的其他任何地方)獲取此值? 謝謝 – 2010-03-10 22:29:11

+0

要成功返回數據,請將success:function()更改爲success:function(data)。根據您的服務設置,您將獲得一個數據,這是您的布爾值或具有屬性.d的數據,這是您的布爾值。 – pdr 2010-03-10 22:48:30

3

您在web.config中啓用了自定義錯誤。因此,返回的異常將是通用的(大部分是空白的),每次都是相同的。這使得調試變得困難。

要查看真正的異常,請暫時禁用自定義錯誤。 Here is how to do that for web services only,如果你需要這種粒度。