C# 从远程HTML页面调用*.aspx函数

C# 从远程HTML页面调用*.aspx函数,c#,javascript,jquery,asp.net,html,C#,Javascript,Jquery,Asp.net,Html,您好,我是web应用程序开发新手。我创建了一个*aspx页面,它通过一个返回字符串的方法调用webservice。现在我想使用任何脚本语言从远程HTML5页面调用这个aspx方法,并在远程HTML页面上显示数据。 谁能告诉我如何调用aspx方法并在HTML5页面上显示is内容 下面是我正在使用的代码 Default.aspx.cs文件 using System; using System.Configuration; using System.Data; using

您好,我是web应用程序开发新手。我创建了一个*aspx页面,它通过一个返回字符串的方法调用webservice。现在我想使用任何脚本语言从远程HTML5页面调用这个aspx方法,并在远程HTML页面上显示数据。 谁能告诉我如何调用aspx方法并在HTML5页面上显示is内容

下面是我正在使用的代码

Default.aspx.cs文件

   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 HotelTabWebServiceWebReference;
    using System.Web.Services;

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

      [System.Web.Services.WebMethod(true)]
      protected static string getHotelMenuList()
       {
            HotelTabWebServiceWebReference.HotelAppForTabWebService proxy = new HotelTabWebServiceWebReference.HotelAppForTabWebService();
            string menuList = null;  
          try
            {
                menuList = proxy.getMenuType();
            }
            catch (FormatException)
           {
               Console.Write("error");
           }
        return menuList;
        }
     }
当我使用default.aspx运行这个default.aspx.cs页面时,它会显示工作正常

但是当我从外部HTML5调用它时,它什么都不做

HTML 5代码:

 <!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>
    <title>Untitled Page</title>
   <script type="text/javascript" src="jquery-1.10.2.js"></script>
   <script type="text/javascript" src="newJS.js"></script>

    </head>
     <body onload="sendSOAPRequest()">
      <div id="myDiv">data returned by aspx function should appear here</div>
      </body>
      </html>
当执行HLML 5文件时,它执行endFunction,但不进入success函数

请让我知道怎么做。
提前感谢。

在aspx源代码中,您必须有一个脚本管理器来启用web方法,您必须将其放入表单中。
我使用下一个jquery函数对其进行测试

 $(document).ready(function() {
            $.ajax({
                type: 'POST',
                url: 'Default.aspx/getHotelMenuList',
                data: '{ }',
                contentType: 'application/json; charset=utf-8',
                dataType: 'json',
                success: function (msg) {
                    alert(msg.d);
                }
            });
        });

您是否尝试过这样设置:


contentType:'text/xml;charset=utf-8'

您可以从向ajax调用添加
错误事件开始,并查看错误详细信息there@RonnoDex:当我显示任何内容时,默认值n.aspx页面内容显示在页面上,但我需要根据客户端的要求在HTML 5页面上显示内容,正如我所说的添加
错误:函数(jqXHR,textStatus,errorhorn){alert(errorhorn);}
感谢您的ajax呼叫!现在它返回远程HTML上的数据,但我现在面临的问题是它返回未定义的数据!您能告诉我问题出在哪里以及可以做什么吗?我对这一点完全陌生,请提供任何帮助!首先返回一个简单的字符串内容作为“Hello Test”或者类似的,这是我做的测试。另一个问题可能是响应类型,如果字符串是xml或html,则必须在ajax调用的内容类型中指定,因此对于xml,它必须是contentType:'text/xml;charset=utf-8',对于html contentType:'text/html;charset=utf-8'
 $(document).ready(function() {
            $.ajax({
                type: 'POST',
                url: 'Default.aspx/getHotelMenuList',
                data: '{ }',
                contentType: 'application/json; charset=utf-8',
                dataType: 'json',
                success: function (msg) {
                    alert(msg.d);
                }
            });
        });