2013-12-11 3 views
2

Привет Я новичок в разработке веб-приложений. Я создал страницу * aspx, которая вызывает веб-сервис через метод, который возвращает строку. Теперь я хочу вызвать этот метод aspx с удаленной страницы HTML 5 с использованием любого языка сценариев и отображения данных на удаленной HTML-странице. Может ли кто-нибудь рассказать мне, как я могу вызвать метод aspx и отображение содержимого на странице HTML 5.Вызов функции * .aspx с удаленной HTML-страницы

Ниже код, который я использую,

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.cs страницу с default.aspx он показывает работает правильно

, но когда я называю его от внешнего 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

Вы можете начать путем добавления 'error' события в Ajax вызов и просмотреть подробную информацию об ошибке там – RononDex

+0

@RonnoDex: Когда я показываю любое содержание вещи п Default.aspx страницы появляется на странице, но я п eed для отображения содержимого на странице HTML 5 в соответствии с требованиями клиентов –

+1

Да, как я уже сказал, добавьте функцию 'error: function (jqXHR, textStatus, errorThrown) {alert (errorThrown); } 'на ваш вызов ajax – RononDex

ответ

3

В источнике ASPX вы должны иметь менеджер скрипт позволяет веб-методы, которые вы должны положить его в форму <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); 
       } 
      }); 
     }); 
+0

Спасибо за ответ! Теперь он возвращает данные на удаленном HTML, но теперь проблема заключается в том, что он возвращает неопределенные данные! можете ли вы, пожалуйста, сообщить мне, в чем проблема, и что можно сделать? Я совершенно новичок в этом, пожалуйста, любая помощь приветствуется! –

+0

сначала верните простое содержимое строки как «Hello Test» или что-то в этом роде, это тест, который я сделал. Другой проблемой может быть тип ответа, если строка представляет собой xml или html, которые вы должны указать в типе содержимого вызова ajax, поэтому для xml он должен быть contentType: 'text/xml; charset = utf-8 'и для html contentType:' text/html; кодировка = UTF-8' –

0

Вы пробовали настройки, как это:

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

Смежные вопросы