Asp.net

使用 jquery ajax asp.net 4.0 呼叫 asmx 服務

  • October 26, 2021

我正在嘗試使用 jquery 呼叫範例 asmx 服務,這是 jquery 程式碼

$.ajax({
           type: "POST",
           url: "/Services/Tasks.asmx/HelloWorld",
           data: "{}",
           dataType: "json",
           contentType: "application/xml; charset=utf-8",
           success: function (data) {                   
               alert(data);                    
           }
       });

這沒有顯示任何消息,程式碼在 asp.net 4.0 中,我錯過了什麼嗎?

編輯 - 我將 dataType 更改為 xml,現在成功函式正在執行,它返回以下 xml

<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">Hello World</string>

我正在使用以下程式碼來解析 xml 數據,它在警報中顯示為 null

success: function (data) {
   edata = $(data).find("string").html();
   alert(data);
}

我相信這是因為您擁有 dataType: “json” 並且它期望響應內容類型相同,但返回的是 XML。我敢打賭,整個事件正在被提出,但沒有成功。

嘗試

$.ajax({
           type: "POST",
           url: "/Services/Tasks.asmx/HelloWorld",
           data: "{}",
           dataType: "json",
           contentType: "application/xml; charset=utf-8",
           success: function (data) {                   
               alert(data);                    
           },
           complete: function (data) {                   
               alert(data);                    
           }
       });

更新

我認為這是因為您使用的是 .html(),因此需要使用 text()。另外我不知道您是否打算這樣做,但是您data的警報中有,我假設您打算使用edata. 以下對我有用:

jQuery.ajax({
   type: "POST",
   url: "/yourURL",
   dataType: "xml",
   data: "{}",
   contentType: "application/xml; charset=utf-8",
   success: function(data) {
       edata = $(data).find("string").text();
       alert(edata);
   }
})

引用自:https://stackoverflow.com/questions/4808641