借鸡生蛋:ajax跨域提交数据

阅读: 评论:0

借鸡生蛋:ajax跨域提交数据

借鸡生蛋:ajax跨域提交数据

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

  1. <script type="text/javascript">
  2. function queryAddress(strID){
  3.       try{
  4.             var qIp&#ElementById("ip_"+strID);
  5.             var qUrl='.ashx?ipstr='+deValue;
  6.             var ajax=new Ajax.Request(qUrl,{
  7.                      method:'get',  
  8.                      onSuccess:function(strResponse){
  9.                           var resContent&#sponseText;
  10.                           var strStruct=resContent.substring(resContent.lastIndexOf(",")+1,resContent.length);
  11.                           qIp.innerHTML=strStruct.split(" ")[0];
  12.                      }
  13.             });
  14.       }catch(e){}
  15. }
  16. </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>

 

罗列一下我找的几个查询网址:
.php?action=queryip&ip_url=221.123.123.123
.ashx?ipstr=221.123.123.123
以上两个只返回文本
.s?type=ip&q=221.123.123.123
这个返回XML

写完了,意识到一个问题.ajax不支持跨域提交.这也不成问题:我们用脚本写一个页面.用msxml的load方法装载目标网址!就可以搞到我们感兴趣的数据!参考此贴:.html
js代码稍微变一下:

  1. function queryAddress(strID){
  2.       try{
  3.             var qIp&#ElementById("ip_"+strID);
  4.             var qUrl='queryiplocal.asp?ip='+deValue;            
  5.             var ajax=new Ajax.Request(qUrl,{
  6.                      method:'get',  
  7.                      onSuccess:function(strResponse){
  8.                           qIp.innerHTML&#sponseText;                         
  9.                      }
  10.             });
  11.       }catch(e){}
  12. }

 

下面的是ASP文件源码:

  1. <%
  2. Response.ContentType="text/xml"
  3. Response.Charset="GB2312"
  4. Dim strIP,strPattern
  5. strIP=Request.QueryString("ip")
  6. strPattern="^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$"
  7. If strIP="" Or IsNumeric(strIP) then
  8.        Response.End()
  9. ElseIf Not serRegValidate(strPattern,strIP) then
  10.        Response.End()
  11. End If
  12. Dim strURL:strURL=".s?type=ip&q="
  13. set parser=Server.CreateObject("MSXML2.DOMDocument")
  14. parser.async=false
  15. parser.ValidateOnParse=true
  16. parser.setProperty "ServerHTTPRequest",true
  17. parser.load(strURL)
  18. if Code<>0 then        
  19.         Response.End()
  20. end if                  
  21. set currNode=parser.selectNodes("//product")
  22. Dim strLocal:strLocal=currNode.item(0).selectSingleNode("location").text
  23. Response.Write Split(strLocal," ")(0)
  24. %>

本文发布于:2024-02-04 23:59:15,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170719368260947.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:借鸡生蛋   数据   ajax
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23