asp ajax跨域提交数据

来源:asp之家 时间:2011-04-11 10:56:00 

星期五写了个分类信息的小东东!在数据库里只有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,ajax,跨域,提交数据
0
投稿

猜你喜欢

  • oracle 发送邮件 实现方法

    2009-06-10 17:49:00
  • Python多线程编程(二):启动线程的两种方法

    2023-11-27 16:15:48
  • JS中把函数作为另一函数的参数传递方法(总结)

    2024-05-05 09:14:39
  • 解决SQL SERVER 2008数据库表中修改字段后不能保存

    2024-01-18 07:31:10
  • ASP中SESSION无法保存问题的解决办法

    2023-06-27 15:40:12
  • MySQL查询出现1055错误的原因及解决方法

    2024-01-13 04:05:54
  • Vue调用后端java接口的实例代码

    2024-05-09 10:51:02
  • vuex实现的简单购物车功能示例

    2024-05-08 10:43:19
  • js中的replace方法使用介绍

    2024-04-10 13:54:58
  • Python 转移文件至云对象存储的方法

    2022-02-01 04:28:19
  • opencv 傅里叶变换的实现

    2022-03-21 09:59:51
  • 数学公式“四又二分之一”

    2009-01-14 20:03:00
  • python3中calendar返回某一时间点实例讲解

    2022-07-24 02:56:16
  • Micropython固件使用Pico刷固件并配置VsCode开发环境的方法

    2022-09-21 16:22:14
  • 使用Python对mongo数据库中字符串型正负数值比较大小

    2024-01-18 00:04:50
  • mysql 复制过滤重复如何解决

    2024-01-18 17:55:54
  • Python最火、R极具潜力 2017机器学习调查报告

    2023-10-10 01:40:47
  • python 时间处理之月份加减问题

    2023-11-08 01:05:42
  • python矩阵运算,转置,逆运算,共轭矩阵实例

    2021-09-16 17:45:22
  • PHP获取类私有属性的3种方法

    2023-11-20 10:32:16
  • asp之家 网络编程 m.aspxhome.com