我在网络服务器(内部网)无法访问互联网的地方工作。我必须通过XML或JSON提要访问其他部门的数据。
我目前能够使用JavaScript执行此操作,因为客户端可以访问Internet。它是一个黑客,我对它不满意,因为我对JavaScript很糟糕,宁愿在代码背后工作。
以下代码目前有效但我宁愿页面加载,Ajax抓取XML并将数据发送到后面的代码,然后我可以提供Repeater或操作代码。任何见解都会有所帮助。
谢谢。
当前的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
}
});
}
答案 0 :(得分:0)
最直接的方法是使用ASP.NET WebMethod。 WebMethod是ASP.NET的一部分,它允许您对页面进行AJAX调用。对于您是否希望方法有权访问会话数据,有不同的方法,因此请注意这一点。这里有一些简洁的演示代码:
http://www.aspsnippets.com/Articles/Calling-ASPNet-WebMethod-using-jQuery-AJAX.aspx
如果您必须与页面控件进行交互,那么您可以:
在您的代码隐藏中,从HiddenField反序列化您的数据,修改您的Repeater,并让ASP.NET正常返回结果
这是一个痛苦的屁股,但它会起作用。