Jquery 对返回未定义数据的ASPX方法的远程调用

Jquery 对返回未定义数据的ASPX方法的远程调用,jquery,asp.net,ajax,html,web-services,Jquery,Asp.net,Ajax,Html,Web Services,我不熟悉ASP.NET和web服务。我正在从*.aspx页面调用web服务,该页面返回正确的输出。但当我从外部HTML页面调用*.aspx方法时,该方法会将未定义的数据返回给success函数中的AJAX方法 下面是我对*.aspx方法的ajax调用 // JavaScript Document $(document).ready(function() { $.ajax({ type: 'POST', url: 'http://l

我不熟悉ASP.NET和web服务。我正在从*.aspx页面调用web服务,该页面返回正确的输出。但当我从外部HTML页面调用*.aspx方法时,该方法会将未定义的数据返回给success函数中的AJAX方法

下面是我对*.aspx方法的ajax调用

// JavaScript Document
 $(document).ready(function() {
        $.ajax({
            type: 'POST',
            url: 'http://localhost:49367/Ex2/Default.aspx/getHotelMenuList',
            data: '{}',
            contentType: 'text/xml; charset=utf-8',
            async: true,
            dataType: 'xml',
             complete: function(){
                alert("hi");
            },
            error: function(jqXHR, textStatus, errorThrown) { alert(errorThrown); },
            success: function (msg) {
                alert("Data:"+msg.d);
            }
    });
});
我的aspx代码如下:

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
     <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>
    </div>
    </form>
</body>
</html>
请让我知道我的代码出了什么问题,或者我应该在代码中做什么更改。

几点注意事项:

1) 您实现的不是web服务,而是一个页面。因此,返回的不是XML(当您指定
dataType:'XML'

2) 您正在请求一个页面,并且您正在指定一个对web服务有效的
contentType


您可以在应用(*.asmx或WCF)中为一个真正的web服务解决此问题,或者,根据您需要返回的内容,使用服务器上的
jQuery.get()

请注意,getHotelMenuList()方法实际上不返回任何内容!抱歉,我错了,我忘了添加返回代理;过帐代码时
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using HotelWebReference;
using System.Web.Services;

public partial class _Default : System.Web.UI.Page
{

    [System.Web.Services.WebMethod]
    public static string getHotelMenuList()
    {
        HotelWebReference.HotelAppForTabWebService proxy = new HotelWebReference.HotelAppForTabWebService();
return proxy.getMenuType();

    }
}