java调用ip138接口查询ip地址,iP查询接口Javascript代码示例 iP地址查询接口Javascript代码示例 iP138查询网...
function ajax(params){
params = params||{};
if (!params.url) {
throw new Error('Necessary parameters are missing.'); //必要参数未填
}
var random = +new Date;
var hander = null;
var options = {
url: '', //接口地址
type: 'GET', //请求方式
timeout: 5000, //超时等待时间
cache: true, //缓存
async: true, //是否异步
xhrFields: {}, //设置XHR对象属性键值对。如果需要,可设置withCredentials为true的跨域请求。
dataType: 'json', //请求的数据类型
data: {}, //参数
jsonp: 'callback', //传递请求完成后的函数名
jsonpCallback: 'jsonp_' + random, //请求完成后的函数名
error: function() {}, //请求失败后调用
success: function(){}, //请求成功后调用
complete: function(){} //请求完成后调用
};
var formatParams = function(json) {
var arr = [];
for(var i in json) {
arr.push(encodeURIComponent(i) + '=' + encodeURIComponent(json[i]));
}
return arr.join("&");
};
for(var i in params){
switch(i){
case 'type':
options[i] = params[i].toUpperCase();
break;
case 'dataType':
options[i] = params[i].toLowerCase();
break;
default:
options[i] = params[i];
}
}
if(typeof options.data =='object'){
options.data = formatParams(options.data);
}
if(options.dataType=='jsonp'){
options.cache = params.cache||false;
//插入动态脚本及回调函数
var $head = document.getElementsByTagName('head')[0];
var $script = document.createElement('script');
$head.appendChild($script);
window[options.jsonpCallback] = function (json) {
$head.removeChild($script);
window[options.jsonpCallback] = null;
hander && clearTimeout(hander);
options.success(json);
options.complete();
};
//发送请求
if(options.cache){
options.data += options.data?'&_'+random:'_'+random;
}
options.data += '&'+options.jsonp+'='+options.jsonpCallback;
$script.src = (options.url + '?' + options.data).replace('?&','?');
//超时处理
hander = setTimeout(function(){
$head.removeChild($script);
window[options.jsonpCallback] = null;
options.error();
options.complete();
}, options.timeout);
}else{
if(options.cache){
options.data += options.data?'&_'+random:'_'+random;
}
//创建xhr对象
var xhr = new (self.XMLHttpRequest||ActiveXObject)("Microsoft.XMLHTTP");
if(!xhr){
return false;
}
//发送请求
if (options.type == 'POST') {
xhr.open(options.type, options.url, options.async);
xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
}else{
options.url += options.url.indexOf('?')>-1?'&'+options.data:'?'+options.data;
xhr.open(options.type, options.url, options.async);
options.data = null;
}
if(options.xhrFields){
for(var field in options.xhrFields){
xhr[field]= options.xhrFields[field];
}
}
xhr.send(options.data);
//超时处理
var requestDone = false;
hander = setTimeout(function() {
requestDone = true;
if(xhr.readyState != 4){
xhr.abort();
options.error();
}
options.complete();
}, options.timeout);
//状态处理
xhr.onreadystatechange = function(){
if(xhr.readyState == 4&&!requestDone) {
if(xhr.status>=200 && xhr.status<300||xhr.status == 304) {
var data = options.dataType == "xml" ? xhr.responseXML : xhr.responseText;
if (options.dataType == "json") {
try{
data = JSON.parse(data);
}catch(e){
data = eval('(' + data + ')');
}
}
options.success(data);
} else {
options.error();
}
hander && clearTimeout(hander);
options.complete();
}
};
}
}
ajax({
'url':'https://api.ip138.com/ip/',
'data':{ //默认自动添加callback参数
'ip':'8.8.8.8', //为空即为当前iP地址
'oid':'35553',
'mid':'2',
'token':'00d5cb1fac5dc5cbfe2ff218292a2dfd33' //不安全,请定期刷新token,建议进行文件压缩
},
'dataType':'jsonp',
'success':function(json){
console.log(json);
}
});
java调用ip138接口查询ip地址,iP查询接口Javascript代码示例 iP地址查询接口Javascript代码示例 iP138查询网...相关推荐
- 二、JAVA调用海康威视SDK实现摄像头预览完整版
接上一章:一.JAVA调用海康威视SDK实现摄像头预览 添加摄像头信息输入框 添加视频控制按钮 添加截图功能 代码: PreView.java package com.kx.hcws;import j ...
- java 调用postgresql 函数_从Java调用PostgreSQL中的存储过程
我编写了一个我想用Java调用的存储过程.但我不认为它能够对我通过的查询做任何事情.以下是我的java代码: String QUERY_LOCATION = "select (license ...
- Java调用JS,JS调用JAVA
JAVA 调用 JS //Java端 //带参数的函数调用 final String exes = "cc.Global.setEcADVal('"+ var1 + "' ...
- php新浪获取ip接口,【php】利用新浪api接口与php获取远程数据的步骤,获取IP地址,并获取相应的IP归属地...
[php]利用新浪api接口与php获取远程数据的方法,获取IP地址,并获取相应的IP归属地 本文与<[Servlet]Javaweb中,利用新浪api接口,获取IP地址,并获取相应的IP归属地 ...
- 第二篇:java调用公共数据接口:上海市车辆基本信息查询(java调用soap接口)
java调用公共数据接口:上海市数据公共开放平台 前言 一.找个接口作为案例 二.查看文档 1.查看接口文档 2.确认接口地址与参数 三.编码(找代码直接跳这里!) 1.先创建一个返回数据的实体类 2 ...
- 【Java网络编程】获得实验室局域网中所有开机主机名称和IP地址,InetAddress类,在java中如何获取IP地址的方法
获得实验室所有主机的IP地址和主机名 一.InetAddress类 二.获得指定IP地址和主机名的主要方法以及练习 1.主要方法 2.源码 三.获得实验室局域网中所有开机主机名称和IP地址 1.源码 ...
- 第一篇:java调用公共数据接口:QQ在线状态查询(java调用http接口)
java调用公共数据接口: webxml 前言 一.以webxml上的一个接口为案例 二.查看接口文档 1.查看支持的调用方式 2.确认接口地址与参数 三.编码(找代码直接跳这里!) 1.配置Rest ...
- 公用ip地址查询_是什么使您无法更改公用IP地址并在Internet上造成严重破坏?
公用ip地址查询 What exactly is preventing you (or anyone else) from changing their IP address and causing ...
- linux 循环执行ip停止服务,java调用远程服务器的shell脚本以及停止的方法实现
最近接了个需求,要求远程调shell脚本,你没听错!!!需求就一句话,咱是谁,咱是优秀的开发选手.考虑再三,有两种实现方式: 方案一:脚本所在服务器安装一个客户端,也就是自己写的一个小程序,本地通过端 ...
- 怎么用java调用快递接口查询和寄件等功能java-demo
快递100快递物流查询.寄件等功能java-demo 快递100API内支持很多的快递功能,能够满足大家的需求,我们还可以自定义选择快递接口,支持多家快递公司,顺丰.京东.EMS.邮政.百世.圆通.韵 ...
最新文章
- memcpy()内存拷贝和赋值操作效率测试
- 工程师忽略的隐形成本
- 服务发现框架选型,Consul还是Zookeeper还是etcd
- 如何在ABAP ALV中具体的控制每个格子中的编辑属性
- 类选择器与ID选择器的比较
- 汇编中call printf参数压栈时错误理解
- php times33,PHP Hash算法:Times33算法代码实例
- 美一好创始人驾驶蔚来ES8启用自动驾驶后发生交通事故不幸逝世
- 职业教育计算机专业宣传,对中等职业教育中计算机专业教育的思考
- 记录几个视频处理软件
- 4月27日—5月1日三年级课程
- 学计算机要选什么科,新高考省份想学计算机专业怎么选科
- 电商平台二清该怎样合规?
- Mac下转换文件编码格式
- MOSFET开通特性(2)——动态特性
- 第四周.直播.03.论文带读+GAT
- boot.scr生成
- 【前端22_混合开发】介绍、初步认识MUI、UI组件、窗口管理
- 如何用计算机制作探测器,自制自制金属探测器
- 西湖大学张岳老师NLP课程大纲
热门文章
- OpenAI:基于对比学习的无监督预训练
- excel高级筛选怎么用_Excel筛选功能这样用,再多数据我也不惧了
- 清除node本地缓存
- FinClip黑客马拉松来袭,共同探索小程序边界
- 最全的关于硬件测试的解读
- 朋友圈爱心拼图php源码_朋友圈爱心形配图怎么弄 微信朋友圈九宫格心形拼图教程方法...
- 程序员幽默:39个奇葩代码注释,每一个都能笑抽
- 帮蔡徐坤刷出一亿转发,APP开发者一审获刑
- 腾达路由器电信宽带服务器无响应,腾达路由器连接上但上不了网怎么办 腾达路由器上不了网原因及解决办法【图文】...
- 手机怎么设置腾达路由器后显示远端服务器,怎么用手机设置腾达路由器