jquery ajax跨域调用
客户端:
//ajax跨域调用的方法
$.ajax({
url:dustUrl+"/screenshot/getDevices.do",
type: "get",
async: false,
dataType: "jsonp",
jsonp: "callbackparam",
jsonpCallback: "success_jsonpCallback",
success: function(data) {
var len=data.length;
$.each(data,function(index,value){
var deviceId=value.id;
var deviceNum=value.deviceNum;
var cameraIP=value.cameraIP;
$.ajax({
url:dustUrl+"/screenshot/getPresets.do",
type:"get",
async: false,
data:{"deviceId":deviceId},
dataType:"jsonp",
jsonp: "callbackparam",
jsonpCallback: "success_jsonpCallback",
success:function(data){
if(data.length>0){
var presetIdStr=data[0].presetIds;
if(presetIdStr!=""){
setTimeout("openWindow('"+deviceNum+"','"+cameraIP+"','"+presetIdStr+"');",3000);
//openWindow(deviceNum,cameraIP,presetIdStr);
}
}
}
});
});
setTimeout("closeWindow();",(len+1)*3000); }
});
服务器端:
@RequestMapping("/getDevices")
public void getDevices(HttpServletRequest req,HttpServletResponse res){
List<Device> deviceList=commonService.getEntityList(Device.class, "and len(cameraIP)>0");
String devices="";
for (Device device : deviceList) {
devices+="{\"id\":\""+device.getId()+"\",\"deviceNum\":\""+device.getDeviceNum()+"\",\"cameraIP\":\""+device.getCameraIP()+"\"},";
}
if(devices.length()>0)
devices=devices.substring(0, devices.length()-1);
res.setContentType("text/plain");
String callbackFunName =req.getParameter("callbackparam");//得到js函数名称
try {
res.getWriter().write(callbackFunName + "(["+devices+"])"); //返回jsonp数据
} catch (IOException e) {
e.printStackTrace();
}
}
@RequestMapping("/getPresets")
public void getPresets(HttpServletRequest req,HttpServletResponse res) {
res.setContentType("text/plain");
String callbackFunName =req.getParameter("callbackparam");//得到js函数名称
String deviceId=req.getParameter("deviceId");
String presetIds="";
if(StringUtils.isNotBlank(deviceId)){
List<Preset> presetList=commonService.getEntityList(Preset.class, "and deviceId='"+deviceId+"'","presetNum");
for (Preset preset : presetList) {
presetIds+=preset.getPresetNum()+",";
}
}
if(StringUtils.isNotBlank(presetIds)){
presetIds=presetIds.substring(0, presetIds.length()-1);
}
try {
res.getWriter().write(callbackFunName + "([ {presetIds:\""+presetIds+"\"}])"); //返回jsonp数据
} catch (IOException e) {
e.printStackTrace();
}
}
jquery ajax跨域调用的更多相关文章
- jquery Ajax跨域调用WebServices方法
由于公司需要开发一个手机页面,想提供给同事直接在手机上可以查询SAP资料.数据需要使用js调用webserver来获取. 因为初次使用Jquery调用Webserver,所以期间并不顺利.测试调用We ...
- 以短链服务为例,探讨免AppKey、免认证、Ajax跨域调用新浪微博API
新浪微博的API官方提供了很多种调用方式,支持编程的,归根结底就是两种: 1.基于Oauth协议,使用Open API.(http://open.weibo.com/wiki/%E6%8E%88%E6 ...
- AJAX跨域调用相关知识-CORS和JSONP(引)
AJAX跨域调用相关知识-CORS和JSONP 1.什么是跨域 跨域问题产生的原因,是由于浏览器的安全机制,JS只能访问与所在页面同一个域(相同协议.域名.端口)的内容. 但是我们项目开发过程中,经常 ...
- JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案
JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案 最近在开发WSS RESTful服务的时候, 碰到了这些个纠 ...
- 关于JQuery Ajax 跨域 访问.net WebService
关于这个 jQuery Ajax跨域访问 WebService 前天整了好几个小时没整明白 今天再看一下 结果突然就顿悟了 1.建一个空webApplication --添加--新建项--web服务( ...
- AJAX跨域调用ASP.NET MVC或者WebAPI服务
关于AJAX跨域调用ASP.NET MVC或者WebAPI服务的问题及解决方案 作者:陈希章 时间:2014-7-3 问题描述 当跨域(cross domain)调用ASP.NET MVC或者ASP. ...
- 支持ajax跨域调用的WCF搭建示例
支持ajax 跨域调用的WCF搭建 1.新建一个"ASP.NET空Web应用程序"项目. 2.新建一个“WCF服务(支持ajax)”. 3.修改WCFAjaxService.svc ...
- AJAX跨域调用ASP.NET MVC的问题及解决方案
AJAX跨域调用ASP.NET MVC的问题及解决方案 问题描述: 解决方法: 只需要在web.config中添加如下标为红色的内容即可: <system.webServer> <h ...
- NodeJ node.js Jquery Ajax 跨域请求
Jquery + Ajax 跨域请求 说白了就是前台请求ajax数据(JSON)但是请求的数据不在本地的绝对路径下,接口数据 是没有这个安全性的我对外公开的接口数据,只要你找到接口你就可以使用里面的数 ...
随机推荐
- Nexpose下载安装注册一条龙
附上两个下载链接: Windows版本(64bit) : http://download2.rapid7.com/download/NeXpose-v4/NeXposeSetup-Windows64. ...
- 读《编写可维护的JavaScript》第二三章总结
第二章 注释 添加注释的一般原则是,在需要让代码变得清晰时添加注释. 2.1 ① 单行注释 独占一行的注释,用来解释下一行代码.这行注释之前总是有一个空行,且缩进层级和下一行代码保持一致. 在代码行的 ...
- T-SQL编程练习(带注释)
use test; GO /*创建自定义函数的格式: * create function 函数名(参数 数据类型) * returns 返回数据类型 as * begin * 代码 * end */ ...
- codeforces 85D D. Sum of Medians 线段树
D. Sum of Medians time limit per test 3 seconds memory limit per test 256 megabytes input standard i ...
- 【网摘】CURL常用命令
原文地址: http://www.thegeekstuff.com/2012/04/curl-examples/ 下载单个文件,默认将输出打印到标准输出中(STDOUT)中 curl http://w ...
- CSS3盒子阴影box-shadow
来自W3CSchool的解释 语法: box-shadow: h-shadow v-shadow blur spread color inset; 注释:box-shadow 向框添加一个或多个阴影. ...
- (十四)UDP协议的两个主要方法sendto和recvfrom详解
在网络编程中,UDP运用非常广泛.很多网络协议是基于UDP来实现的,如SNMP等.大家常常用到的局域网文件传输软件飞鸽传书也是基于UDP实现的. 本篇文章跟大家分享linux下UDP的使用和实现,主要 ...
- javascript高级编程3第二章:在html中使用javascript
2.1 <script>元素 向html页面中插入javascript的主要方法,就是使用<script>元素.这个元素被加入到正式的html规范中.html4.01为< ...
- IOC理解
控制反转(反转控制):谁控制了谁? 就是交换控制权1.A a =new A(); 要使用这个A 必须你去new他.控制权在a2.由第三方来进行创造这个A,你用的时候直接用就是.控制权在第三方. 3 ...
- django 模型
一.project 与app之间的关系 1个project中可包含多个app eg:包含两个app的project的结构