js调用远程asp文件问题!
上级单位要调用我们单位的主页上的一个新闻推荐栏目,要给提供一个js,但是我单位网页新闻没有生成js的功能,查了好久,没有找到合适的方法,使用iframe的方法就不需要了,...
上级单位要调用我们单位的主页上的一个新闻推荐栏目,要给提供一个js,但是我单位网页新闻没有生成js的功能,查了好久,没有找到合适的方法,使用iframe的方法就不需要了,可以实现,但据说不安全。想用js如何才能实现呢?
To:Keboywaking 那样做会不会要经常手动生成xml文件呢?如果不能自动生成,怎样才能自动生成?
To:Keboywaking 生成xml字符串的已经可以实现了,但是js文件如何才能调用这个asp文件的xml字符串变量?
上级单位只问我要生成的js文件的链接,他不会去ajax,他只要做<script language="javascript" src="http://我的主页域名/推荐新闻链接.js"></script>
现在的问题就是,这个推荐新闻链接.js怎么写,才能读上面提到的那个xml字符串? 给个示例也行啊! 展开
To:Keboywaking 那样做会不会要经常手动生成xml文件呢?如果不能自动生成,怎样才能自动生成?
To:Keboywaking 生成xml字符串的已经可以实现了,但是js文件如何才能调用这个asp文件的xml字符串变量?
上级单位只问我要生成的js文件的链接,他不会去ajax,他只要做<script language="javascript" src="http://我的主页域名/推荐新闻链接.js"></script>
现在的问题就是,这个推荐新闻链接.js怎么写,才能读上面提到的那个xml字符串? 给个示例也行啊! 展开
4个回答
展开全部
主页的新闻推荐栏目可以提供一个xml格式的接口,
比如用asp页面调用数据,输出xml格式,
上级单位的页面可以用xmlhttp组件和Microsoft.XMLDOM组件来的读取该xml文件内容,或者上级单位的页面用ajax读取该xml文件内容。
另外如你题目中的想法,也可以在主页上做一个js文件,js中直接用ajax调用新闻内容,并document.write出来,然后在上级单位网站的相应位置直接调用<script language="javascript" src="http://主页域名/该js文件.js"></script>
或者直接主页上做一个asp文件输出内容,上级单位网站的相应位置调用<script language="javascript" src="http://主页域名/该asp文件.asp"></script>
但是这两种方法和iframe没什么区别,建议用第一种方法,也是比较标准的方法。
如果不知道怎么具体实现可以加我baiduHi说。
============================================================
不必去生成xml文件,可以还是asp文件,在asp中定义response.ContentType = "text/xml"
然后用response.Write来输出xml格式的字符串。
比如
dim xmldata
xmldata = "<?xml version=""1.0"" encoding=""utf-8"" ?>"
xmldata = xmldata & "<root>"
Do while not rs.eof
xmldata = xmldata & "<news newsid=""" & rs("id") & """ title=""" & rs("T_Title") & """" />"
rs.movenext()
Loop
xmldata = xmldata & "</root>"
response.Write xmldata
这样无论何时,在哪去调用这个文件,都是现去数据库取的新数据。
==============================================================
//以下是使用jquery封装的ajax方法写的代码,如果对jquery不太了解,我再写个js的
//推荐新闻链接.js代码如下
document.writeln("<script language=\"javascript\" src=\"http://我的主页域名/jquery.js\"></script>"); //包含jQuery文件
$.ajax( {
type: "get", //get或post
url: "http://我的主页域名/推荐新闻.asp", //xml格式的asp文件地址
cache: false,
data: "", //如果该xml格式asp页需要参数,在这里传递,格式如a=1&b=2
dataType: "xml",
error: function() { alert("Error loading XML document"); },
success: function(result) {
$(result).find("news").each( function() { //遍历xml中的news节点
document.writeln("<li><a href='" + $(this).attr("url") + "'>" + $(this).attr("title") + "</a></li>");
//输出html结构,其中数据用xml中的内容代替,jquery中xml的属性用attr方法获取,节点内容用text()或者html()获取
} );
}
} );
//xml格式的asp页编译完输出的纯xml内容范例
<?xml version="1.0" encoding="utf-8"?>
<root>
<news newsid="1" url="http://我的主页域名/news_view.asp?id=1" title="我的新闻标题1" />
<news newsid="2" url="http://我的主页域名/news_view.asp?id=2" title="我的新闻标题2" />
<news newsid="3" url="http://我的主页域名/news_view.asp?id=3" title="我的新闻标题3" />
</root>
另外,其实如果你的上级单位不能使用ajax跨域访问你的主页xml文件的话,其实像现在这样先访问你主页的js文件,再通过这个js文件中ajax访问xml就没什么意义了。与其这样还不如直接在你主页中做一个“推荐新闻链接.asp”内容就是调用新闻数据出来,写成固定格式,比如
<div><a href='http://我的主页域名/news_view.asp?id=1'>我的新闻标题1</a></div>
<div><a href='http://我的主页域名/news_view.asp?id=2'>我的新闻标题2</a></div>
<div><a href='http://我的主页域名/news_view.asp?id=3'>我的新闻标题3</a></div>
其他的html代码,包括head,body,html全不带
这样在上级单位的页面上相应的位置调用
<script language="javascript" src="http://我的主页域名/推荐新闻链接.asp"></script>
这样就行了。
比如用asp页面调用数据,输出xml格式,
上级单位的页面可以用xmlhttp组件和Microsoft.XMLDOM组件来的读取该xml文件内容,或者上级单位的页面用ajax读取该xml文件内容。
另外如你题目中的想法,也可以在主页上做一个js文件,js中直接用ajax调用新闻内容,并document.write出来,然后在上级单位网站的相应位置直接调用<script language="javascript" src="http://主页域名/该js文件.js"></script>
或者直接主页上做一个asp文件输出内容,上级单位网站的相应位置调用<script language="javascript" src="http://主页域名/该asp文件.asp"></script>
但是这两种方法和iframe没什么区别,建议用第一种方法,也是比较标准的方法。
如果不知道怎么具体实现可以加我baiduHi说。
============================================================
不必去生成xml文件,可以还是asp文件,在asp中定义response.ContentType = "text/xml"
然后用response.Write来输出xml格式的字符串。
比如
dim xmldata
xmldata = "<?xml version=""1.0"" encoding=""utf-8"" ?>"
xmldata = xmldata & "<root>"
Do while not rs.eof
xmldata = xmldata & "<news newsid=""" & rs("id") & """ title=""" & rs("T_Title") & """" />"
rs.movenext()
Loop
xmldata = xmldata & "</root>"
response.Write xmldata
这样无论何时,在哪去调用这个文件,都是现去数据库取的新数据。
==============================================================
//以下是使用jquery封装的ajax方法写的代码,如果对jquery不太了解,我再写个js的
//推荐新闻链接.js代码如下
document.writeln("<script language=\"javascript\" src=\"http://我的主页域名/jquery.js\"></script>"); //包含jQuery文件
$.ajax( {
type: "get", //get或post
url: "http://我的主页域名/推荐新闻.asp", //xml格式的asp文件地址
cache: false,
data: "", //如果该xml格式asp页需要参数,在这里传递,格式如a=1&b=2
dataType: "xml",
error: function() { alert("Error loading XML document"); },
success: function(result) {
$(result).find("news").each( function() { //遍历xml中的news节点
document.writeln("<li><a href='" + $(this).attr("url") + "'>" + $(this).attr("title") + "</a></li>");
//输出html结构,其中数据用xml中的内容代替,jquery中xml的属性用attr方法获取,节点内容用text()或者html()获取
} );
}
} );
//xml格式的asp页编译完输出的纯xml内容范例
<?xml version="1.0" encoding="utf-8"?>
<root>
<news newsid="1" url="http://我的主页域名/news_view.asp?id=1" title="我的新闻标题1" />
<news newsid="2" url="http://我的主页域名/news_view.asp?id=2" title="我的新闻标题2" />
<news newsid="3" url="http://我的主页域名/news_view.asp?id=3" title="我的新闻标题3" />
</root>
另外,其实如果你的上级单位不能使用ajax跨域访问你的主页xml文件的话,其实像现在这样先访问你主页的js文件,再通过这个js文件中ajax访问xml就没什么意义了。与其这样还不如直接在你主页中做一个“推荐新闻链接.asp”内容就是调用新闻数据出来,写成固定格式,比如
<div><a href='http://我的主页域名/news_view.asp?id=1'>我的新闻标题1</a></div>
<div><a href='http://我的主页域名/news_view.asp?id=2'>我的新闻标题2</a></div>
<div><a href='http://我的主页域名/news_view.asp?id=3'>我的新闻标题3</a></div>
其他的html代码,包括head,body,html全不带
这样在上级单位的页面上相应的位置调用
<script language="javascript" src="http://我的主页域名/推荐新闻链接.asp"></script>
这样就行了。
展开全部
你可以通过编写一个ASP文件,将新闻生成JS格式,然后就可以调用了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以通过编写一个ASP文件,将新闻生成JS格式,然后就可以调用了
liuyanhao 说的对呀, 你把新闻用ASP调出来,然后生成一个JS,让上级直接调这个JS不就成了,这样,你每次加新闻同时把JS也更新下就行了~
XML我用的很少,不过道理应该是一样的~
JS怎么写?要看你们 推荐新闻 怎么调,调多少?怎么排版~
liuyanhao 说的对呀, 你把新闻用ASP调出来,然后生成一个JS,让上级直接调这个JS不就成了,这样,你每次加新闻同时把JS也更新下就行了~
XML我用的很少,不过道理应该是一样的~
JS怎么写?要看你们 推荐新闻 怎么调,调多少?怎么排版~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
xmlhttp的方法可以实现 利用JS将ASP文件所有输出的内容显示出来。但是有个前提就是asp文件所输出的所有内容都会显示。不能控制只显示其中某一部分
不过可以通过JS来进行截取,我没试过(太吃力了)
前面那个方法想要的话联系我了
不过可以通过JS来进行截取,我没试过(太吃力了)
前面那个方法想要的话联系我了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询