簡體   English   中英

WebMethod無法在ASP.Net Web角色(Web窗體)中工作?

[英]WebMethod not working in ASP.Net Web Role (Web Forms)?

攝制:

  • 打開VS2013,依次單擊“文件”>“新的“ Azure Cloud Service”項目”>“添加一個ASP.NET Web角色”(命名為WebRole1)
  • 選擇Web角色的“ Web表單”模板。
  • jquery-1.11.1.min.js和新的WebForm1.aspx添加到WebRole1項目。
  • 將以下代碼添加到WebForm1.aspx中

     <script src="jquery-1.11.1.min.js"></script> <script> $(function() { $.ajax({ type: "POST", url: "WebForm1.aspx/Foo", beforeSend: function (xhr) { xhr.setRequestHeader("Content-type", "application/json; charset=utf-8"); }, contentType: "application/json; charset=utf-8", dataType: "json", data: "{a: 'webmethod!'}", success: function(data) { alert(data.d); }, error: function() { alert("error"); } }); }); 

  • 將以下函數添加到WebForm1.aspx.cs中的WebForm1類中

     [WebMethod()] public static string Foo(string a) { return a; } 
  • 將WebRole1項目設置為Startup Project並運行。 瀏覽器將發出“未定義”警報。

但是您可以獲得“網絡方法!” 使用普通的ASP.NET WebForm項目。 怎么了?


我注意到在url: "WebForm1.aspx/Foo" :如果更改aspx部分,則ajax失敗; 如果將Foo部分更改為任何值,則ajax總是成功。 這不尋常! 在普通的ASP.NET Web窗體應用程序中,更改任一部分都將導致“錯誤”!


如果創建一個空的 ASP.NET Web角色,則ajax將成功!!! 到底是怎么回事?

JavaScriptSerializer非常靈活,但是值得在data參數中嘗試有效的JSON,例如:

data: '{"a": "webmethod!"}'

我相信JSS會處理單引號中的鍵/值,即使這在技術上不是有效的JSON,但未加引號的a可能會很多。

暫無
暫無

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

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