ajax跨域数据提交,asp ajax跨域提交数据

星期五写了个分类信息的小东东!在数据库里只有ip地址,一般访客不太清楚IP地址来源于哪个城市.如果在表里多一个列保存城市又没有真实性可言.如果能把IP地址变成城市多好呀.当然可以去down下数据库.可就为这个需求觉得有点浪费.还好了有好多网站提供查询.如果能把它的结果变成我的.问题解决.

需要一个js函数.当每出来一条记录时,就把ip替换为城市:

复制代码代码如下:

function queryAddress(strID){

try{

var qIp=document.getElementById("ip_"+strID);

var qUrl='http://ip.wanvee.cn/GetIp.ashx?ipstr='+qIp.firstChild.nodeValue;

var ajax=new Ajax.Request(qUrl,{

method:'get',

onSuccess:function(strResponse){

var resContent=strResponse.responseText;

var strStruct=resContent.substring(resContent.lastIndexOf(",")+1,resContent.length);

qIp.innerHTML=strStruct.split(" ")[0];

}

});

}catch(e){}

}

写一个测试用例:

221.123.123.123

221.123.123.123

221.123.123.123

罗列一下我找的几个查询网址:

http://www.ip.cn/getip.php?action=queryip&ip_url=221.123.123.123

http://ip.wanvee.cn/GetIp.ashx?ipstr=221.123.123.123

以上两个只返回文本

http://www.youdao.com/smartresult-xml/search.s?type=ip&q=221.123.123.123

这个返回XML

写完了,意识到一个问题.ajax不支持跨域提交.这也不成问题:我们用脚本写一个页面.用msxml的load方法装载目标网址!就可以搞到我们感兴趣的数据!参考此贴:http://topic.csdn.net/t/20030619/12/1933920.html

js代码稍微变一下:

复制代码代码如下:

function queryAddress(strID){

try{

var qIp=document.getElementById("ip_"+strID);

var qUrl='queryiplocal.asp?ip='+qIp.firstChild.nodeValue;

var ajax=new Ajax.Request(qUrl,{

method:'get',

onSuccess:function(strResponse){

qIp.innerHTML=strResponse.responseText;

}

});

}catch(e){}

}

下面的是ASP文件源码:

复制代码代码如下:

Response.ContentType="text/xml"

Response.Charset="GB2312"

Dim strIP,strPattern

strIP=Request.QueryString("ip")

strPattern="^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$"

If strIP="" Or IsNumeric(strIP) then

Response.End()

ElseIf Not serRegValidate(strPattern,strIP) then

Response.End()

End If

Dim strURL:strURL="http://www.youdao.com/smartresult-xml/search.s?type=ip&q="

set parser=Server.CreateObject("MSXML2.DOMDocument")

parser.async=false

parser.ValidateOnParse=true

parser.setProperty "ServerHTTPRequest",true

parser.load(strURL)

if parser.parseError.errorCode<>0 then

Response.End()

end if

set currNode=parser.selectNodes("//product")

Dim strLocal:strLocal=currNode.item(0).selectSingleNode("location").text

Response.Write Split(strLocal," ")(0)

%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值