做了一个多功能的气象工具条,在本机测试没有问题,一上传就出现错误了——JS文件中的“xmlhttp.open("GET", xmldoc,false);”拒绝访问(http://m.weather.com.cn/)。
搜索了一下,可以用动态页get.asp获取远程地址的代码,或者动态的构建一个form 然后提交。但我基础很差,不知道具体怎么做。我的JS代码:
function PostOrder(xmldoc)
{
createXMLHTTPRequext();
xmlhttp.open("GET", xmldoc,false); //这句出错了,拒绝访问!
xmlhttp.onreadystatechange= HandleStateChange;
xmlhttp.send(null);
}请问我该怎样实现跨域访问?请给出具体详细的实例(包括get.asp等的全部代码,我很菜)。我要访问的域名是http://m.weather.com.cn
谢谢!
搜索了一下,可以用动态页get.asp获取远程地址的代码,或者动态的构建一个form 然后提交。但我基础很差,不知道具体怎么做。我的JS代码:
function PostOrder(xmldoc)
{
createXMLHTTPRequext();
xmlhttp.open("GET", xmldoc,false); //这句出错了,拒绝访问!
xmlhttp.onreadystatechange= HandleStateChange;
xmlhttp.send(null);
}请问我该怎样实现跨域访问?请给出具体详细的实例(包括get.asp等的全部代码,我很菜)。我要访问的域名是http://m.weather.com.cn
谢谢!
你使用服务器语言访问网址,然后返回客户端
jsp 版本的我实现过
看我的回帖
javascript + asp 实现javascript跨域读取xml文件a.html
<script >
function getPeiLvData() {
var xmlHttpObj=createXMLHTTP();
xmlHttpObj.onreadystatechange=function(){
if (xmlHttpObj.readyState==4)
{
if (xmlHttpObj.status==200)
{
alert(xmlHttpObj.responseText);xmlHttpObj=null;
} } }
xmlHttpObj.open("post","readXML.asp",true);
xmlHttpObj.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xmlHttpObj.send(true); }
getPeiLvData();
</script>
readXML.asp
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%response.charset="gb2312"%>
<%
filePath="http://www.xx.com/xml/xx.xml"
response.write getXML(filePath)
function getXML(url)
dim sttp
set sttp=server.createobject("MSXML2.XMLHTTP")
sttp.open "GET",url,false, "", ""
sttp.send()
if sttp.readystate<>4 then
exit function
end if
getXML=sttp.responseBody
set sttp=nothing
end function
%>
我的readXML.asp(把原来页面的utf-8改为gb2312后,原有页面本机测试也通不过,所以这里也改为utf-8)
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%response.charset="utf-8"%>
<%
filePath="http://m.weather.com.cn/m/pn11/weather.htm"
response.write getXML(filePath)
function getXML(url)
dim sttp
set sttp=server.createobject("MSXML2.XMLHTTP")
sttp.open "GET",url,false, "", ""
sttp.send()
if sttp.readystate<>4 then
exit function
end if
getXML=sttp.responseBody
set sttp=nothing
end function
%>原来的JS页面修改后出现了缺少对象的错误:
function PostOrder() //去掉了xmldoc
{
var xmlHttpObj=createXMLHTTP();//这句出错了,字符: 6 错误: 缺少对象
xmlHttpObj.onreadystatechange=function(){
if (xmlHttpObj.readyState==4)
{
if (xmlHttpObj.status==200)
{
alert(xmlHttpObj.responseText);xmlHttpObj=null;
} } }
createXMLHTTPRequext();
xmlhttpObj.open("GET",readXML.asp,false);
xmlhttpObj.onreadystatechange= HandleStateChange;
xmlhttpObj.send(null);
}
xmlhttpObj.open("GET",readXML.asp,false);
xmlhttpObj.onreadystatechange= HandleStateChange;
xmlhttpObj.send(null);
但是C#下,没有什么好的办法
如果是用<script>,直接就显示了,我要自己能排版的;
如果是用proxy,可是大部分代码都写好了,只要xmlhttp.open能跨域就行了。