作家
登录

asp ajax跨域提交数据

作者: 来源:www.28hudong.com 2013-03-30 08:24:55 阅读 我要评论

星期五写了个分类信息的小东东!在数据库里只有ip地址,一般访客不太清楚IP地址来源于哪个城市.如果在表里多一个列保存城市又没有真实性可言.如果能把IP地址变成城市多好呀.当然可以去down下数据库.可就为这个需求觉得有点浪费.还好了有好多网站提供查询.如果能把它的结果变成我的.问题解决. 需要一个js函数.当每出来一条记录时,就把ip替换为城市: 复制代码 代码如下:<script type="text/javascript"> 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){} } </script> 写一个测试用例: <span id="ip_2">221.123.123.123</span><script type="text/javascript">queryAddress('2')</script> <span id="ip_3">221.123.123.123</span><script type="text/javascript">queryAddress('3')</script> <span id="ip_4">221.123.123.123</span><script type="text/javascript">queryAddress('4')</script> 罗列一下我找的几个查询网址: 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) %>

  推荐阅读

  asp 读取文件和保存文件函数代码

'************************************* '读取文件 '************************************* Function LoadFromFile(ByVal File) Dim objStream Dim RText RText = Array(0, "") Set objStream = Server.CreateOb>>>详细阅读


本文标题:asp ajax跨域提交数据

地址:http://www.17bianji.com/kaifa2/ASP/32120.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)