使用Ajax读取XML(或JSON)feed,我如何将数据传递给我的代码后面,以便我可以使用它



我在网络服务器(Intranet)无法访问网络的地方工作。我必须通过XML或JSON feed访问另一个部门的数据。

我目前可以使用JavaScript执行此操作,因为客户确实可以访问Internet。它是一个黑客,我对此不满意,因为我对JavaScript很糟糕,宁愿在代码后面工作。

以下代码当前有效,但我宁愿加载页面,AJAX抓住XML,然后将数据发送到后面的代码,然后我可以喂食中继器或操纵代码。任何见解都会有所帮助。

谢谢。

当前AJAX

<div id='loadingmessage' style='display:none'>
   <img src='/js/newsdesk/loader.gif' class="ajax-loader" />
</div>
<ul id="army"></ul>
<script src="/js/newsdesk/dynamic-newsdesk.js"></script>
<script>
    $(document).ready(function () {
        displayContent('/js/newsdesk/army.xml', 'army');
    } );

我的.js文件

function displayContent(url, tag) {
$('#loadingmessage').show();  // show the loading message.
$.ajax({
    type: 'GET',
    url: url,
    data: {
        key: "value"
    },
    dataType: "xml",
    success: function (xml) {
        var totalCount = $(xml).find('totalCount').first().text();
        var $article = $(xml).find("article");
        if (totalCount > 0) {
            $article.each(function () {
                var title = $(this).find('title').text();
                var url = $(this).find('articleUrl').text();
                var datetime = $(this).find('publicationDate').text();
                var publicationName = $(this).find('publication > name').text();
                $("#" + tag).append('<li><a href=' + url + ' target=_blank>' + title + '</a><br/><p style="font-size: smaller;"> <em>(' + publicationName + ') ' + datetime + '</em></p></li>');
            });
        }
        else {
            $("#" + tag).append('No articles.');
        }
        $('#loadingmessage').hide(); // hide the loading message
    }
});

}

最直接的方法是使用ASP.NET WebMethod。WebMethod是ASP.NET的一部分,它将让您对页面进行AJAX调用。对于您是否希望该方法可以访问会话数据(是否),请注意。这里有一些整洁的演示代码:

http://www.aspsnippets.com/articles/calling-aspnet-webmethod-using-using-jquery-ajax.aspx

附录

如果您必须与页面控件进行交互,则可以:

  • 在JavaScript中,将数据序列化为字符串
  • 在JavaScript中,将数据数据塞入与Hidden Field相对应的元素
  • 在JavaScript中,触发后备
  • 在您的代码范围内,从隐藏的场外对您的数据进行启用,修改您的中继器,然后让ASP.NET返回结果正常

    这是屁股的痛苦,但会起作用。

相关内容

最新更新