您好我是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但不进入成功函数。
请让我知道如何做到这一点。 提前谢谢。
答案 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'