• 判定客户端IP所在的省市[2]


    在上一篇地址控件的基础上,添加了判定客户端IP所在省市的功能。

    调用新浪提供的IP库接口:http://counter.sina.com.cn/ip/,(可直接点击链接查看返回的数据)

    126提供的接口备用:http://ip.ws.126.net/ipquery


    在线演示:http://sandbox.runjs.cn/show/sgrk3ceu

    核心代码(setClientAddress.js):

    //根据客户端IP判定其所在省市
    //expr:用于筛选元素的jQuery表达式
    var setClientLocation = function(expr){
    		//调用新浪接口
    		//返回样例数据:var ILData = new Array("61.175.198.120","中国", "浙江省", "杭州市", "电信"); if (typeof(ILData_callback) != "undefined") { ILData_callback(); }
    		$.ajax({
    		type:"get",
    		cache: true,
    		async: false,//这里的设置为同步没起作用
    		url:"http://counter.sina.com.cn/ip/",
    		async:false,
    		dataType: 'script',//设置服务器返回的数据类型
    		scriptCharset: 'gb2312',//防止乱码
    		success: function(){
    			if(ILData[2])
    			{
    				//可以做个是否为表单元素的判定,选择使用val()还是text(),还未实现
    				$(expr).val($.trim(ILData[2])+'-'+ $.trim(ILData[3]));
    			}
    		}
    	});
    		
    	//如果新浪接口失效,使用126接口
    	//接口返回数据:var lo="浙江省", lc="杭州市"; var localAddress={city:"杭州市", province:"浙江省"}
    	if(!$(expr).val())
    	{
    		$.ajax({
    			type:"get",
    			cache: true,
    			async: false,
    			url:"http://ip.ws.126.net/ipquery",
    			async:false,
    			dataType: 'script',
    			scriptCharset: 'utf-8',
    			success: function(){
    				if(lo)
    					$(expr).val($.trim(lo)+'-'+$.trim(lc));
    			}
    		 });
    		}
    	};
    


    调用:

    //调用setClientAddress.js中封装的方法
    //参数为jQuery表达式,如#id, .class之类
    setClientLocation('#consignoraddress');


    1.分享下资料

        ip地址api第三方jsonp接口整理

     2.尝试使用jsonp来实现,还存在一些问题,优先完成项目就直接使用上面的方式实现。jsonp资料

       jsonp详解

      说说json与jsonp,也许你会豁然开朗  


  • 相关阅读:
    uniapp请求拦截
    stellar视差插件
    fullpage全屏插件应用
    fullpage全屏插件简介
    WdatePicker日期插件
    Ueditor富文本编辑器
    layer弹出层
    验证码绘制
    Ajax跨域访问
    JQuery封装的ajax方法
  • 原文地址:https://www.cnblogs.com/yunxianli/p/4111955.html
Copyright © 2020-2023  润新知