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

时间:2013-12-11 13:06:51

标签: c# javascript jquery asp.net html5

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

以下是我正在使用的代码,

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页面时,它显示正常工作

但是当我从外部HTML 5调用它时它没有做任何事情

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>

JQuery代码如下,

// JavaScript Document
function sendSOAPRequest()
{


$.ajax({
    url: "http://localhost:50664/ASPX/Default.aspx/getHotelMenuList",
    type: "POST",
    dataType: "xml",
    data: "{}",
    complete: endFunction,
    async: true,
    contentType: "text/xml; charset=\"utf-8\"",
    success: function (msg) {
        $('#myDiv').text(msg.d); 
    }      

});
}
function endFunction(xmlHttpRequest, status)
{
    alert("complete"+xmlHttpRequest.re);
}

执行HLML 5文件时,它执行endFunction但不进入成功函数。

请让我知道如何做到这一点。 提前谢谢。

2 个答案:

答案 0 :(得分:3)

在aspx源代码中,您必须拥有一个脚本管理器,启用必须将其放在表单中的Web方法<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">我使用下一个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);
                }
            });
        });

答案 1 :(得分:0)

您是否尝试过这样设置:

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