2010-02-01 86 views
4

我想要更熟悉AJAX和Web服務,所以我用VS2008創建了最簡單的web服務,hello world,使用了webmethod GetPaper,並試圖獲得返回值「hello world」。爲什麼我的.NET webmethod返回一個完整的HTML文檔而不僅僅是返回值?

<%@ WebService Language="C#" Class="HelloWorld" %> 

using System; 
using System.Web; 
using System.Web.Services; 
using System.Web.Services.Protocols; 

[WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.Web.Script.Services.ScriptService] public class 

HelloWorld : System.Web.Services.WebService { 
    [WebMethod] 
    public string GetPaper() { 
     return "Hello World"; 
    } 
} 

http://www.linkedpapers.com/helloworld.asmx

然而,當我消耗此WebService使用Javascript,我得到一個完整的HTML頁面結果,而不僅僅是價值!

xmlRequest.onreadystatechange = ApplyUpdate; 
xmlRequest.open("GET", "http://www.linkedpapers.com/helloworld.asmx?op=GetPaper", true); 
xmlRequest.send(); 

這可能很簡單,但我似乎無法弄清楚!非常感謝幫助。

問候,

赫拉斯

編輯:還是我用錯了網址?如果是這樣,我應該使用什麼?

回答

2

應該更像這樣:

xmlRequest.onreadystatechange = ApplyUpdate; 
xmlRequest.open("GET", "http://www.linkedpapers.com/helloworld.asmx/GetPaper", true); 
xmlRequest.send(); 

另外,還要確保您配置的web.config允許GET操作:

<webServices> 
    <protocols> 
    <add name=」HttpGet」/> 
    </protocols> 
</webServices> 
+0

是的!這個組合做到了! 我試過「helloworld.asmx/GetPaper」,但在web.config中沒有「add name = HttpGet」的情況下不起作用。 謝謝! – Heras 2010-02-01 14:23:41

1

您可能希望查看在ASP.NET腳本管理器中使用Web引用而不是基本的GET請求。這篇文章將幫你:

http://msdn.microsoft.com/en-us/magazine/cc163499.aspx

+1

感謝您分享該鏈接,並且最終我想使用支持AJAX功能的.NET,但是在開始創建更復雜的Web應用程序之前,我真的很想了解基本知識,真正發生了什麼,我立即被困在最簡單的任務中...... 我絕對會潛入你的鏈接,所以謝謝! – Heras 2010-02-01 14:09:31

相關問題