客户端:

//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跨域调用的更多相关文章

  1. jquery Ajax跨域调用WebServices方法

    由于公司需要开发一个手机页面,想提供给同事直接在手机上可以查询SAP资料.数据需要使用js调用webserver来获取. 因为初次使用Jquery调用Webserver,所以期间并不顺利.测试调用We ...

  2. 以短链服务为例,探讨免AppKey、免认证、Ajax跨域调用新浪微博API

    新浪微博的API官方提供了很多种调用方式,支持编程的,归根结底就是两种: 1.基于Oauth协议,使用Open API.(http://open.weibo.com/wiki/%E6%8E%88%E6 ...

  3. AJAX跨域调用相关知识-CORS和JSONP(引)

    AJAX跨域调用相关知识-CORS和JSONP 1.什么是跨域 跨域问题产生的原因,是由于浏览器的安全机制,JS只能访问与所在页面同一个域(相同协议.域名.端口)的内容. 但是我们项目开发过程中,经常 ...

  4. JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案

    JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案 最近在开发WSS RESTful服务的时候, 碰到了这些个纠 ...

  5. 关于JQuery Ajax 跨域 访问.net WebService

    关于这个 jQuery Ajax跨域访问 WebService 前天整了好几个小时没整明白 今天再看一下 结果突然就顿悟了 1.建一个空webApplication --添加--新建项--web服务( ...

  6. AJAX跨域调用ASP.NET MVC或者WebAPI服务

    关于AJAX跨域调用ASP.NET MVC或者WebAPI服务的问题及解决方案 作者:陈希章 时间:2014-7-3 问题描述 当跨域(cross domain)调用ASP.NET MVC或者ASP. ...

  7. 支持ajax跨域调用的WCF搭建示例

    支持ajax 跨域调用的WCF搭建 1.新建一个"ASP.NET空Web应用程序"项目. 2.新建一个“WCF服务(支持ajax)”. 3.修改WCFAjaxService.svc ...

  8. AJAX跨域调用ASP.NET MVC的问题及解决方案

    AJAX跨域调用ASP.NET MVC的问题及解决方案 问题描述: 解决方法: 只需要在web.config中添加如下标为红色的内容即可: <system.webServer> <h ...

  9. NodeJ node.js Jquery Ajax 跨域请求

    Jquery + Ajax 跨域请求 说白了就是前台请求ajax数据(JSON)但是请求的数据不在本地的绝对路径下,接口数据 是没有这个安全性的我对外公开的接口数据,只要你找到接口你就可以使用里面的数 ...

随机推荐

  1. JS正则表达式大全

    转自:http://wenku.baidu.com/link?url=3y930kC7F6D3wQdMjQ3fVDmiA9Wfebs_QK0UB3N3mFaEoKg4ytZORPopxufeYA6si ...

  2. 【线段树区间合并】HDU1540-Tunnel Warfare

    一.题目 Description During the War of Resistance Against Japan, tunnel warfare was carried out extensiv ...

  3. Thread 和 Runnable 的区别

    在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口: Thread类是在java.lang包中定义 的.一个类只要继承了Thread类同时覆写了本类中的run ...

  4. CocoaPods的安装和使用

    一. CocoaPods简介 CocoaPods是一个用来帮助我们管理第三方依赖库的工具.在开发iOS应用时,会经常使用第三方类库,比如SDWebImage.AFNetworking等等,手动的下载与 ...

  5. Cheatsheet: 2016 05.01 ~ 05.31

    Other Awesome Go - A curated list of awesome Go frameworks, libraries and software Visual Studio Cod ...

  6. EasyUI、Struts2、Hibernate、spring 框架整合

    经历了四个月的学习,中间过程曲折离奇,好在坚持下来了,也到了最后框架的整合中间过程也只有自己能体会了. 接下来开始说一下整合中的问题和技巧: 1,  jar包导入 c3p0(2个).jdbc(1个). ...

  7. 读《编写可维护的JavaScript》第11章总结

    这周也是拿到了同程的offer,从此走上了前端之路!感谢我的贵人们.再次纪念一下~! 第11章 不是你的对象不要动 11.1 什么是你的 你的对象:当你的代码创建了这些对象或者你有职责维护其他人的代码 ...

  8. sql语句错误

    此错误一般有以下情况造成: 1.配置文件中SQL语句写的有问题 2.传参过程中没有找到sql对应的参数 解决方法: 1.检查sql语句 2.debug启动,查找与sql语句相对应的参数是否存在. 3. ...

  9. 谈谈Web前端工程师的定位

    原文地址:http://www.360doc.com/content/10/0708/17/1277406_37692580.shtml 2010-07-08  锋子chans   阅 1116  转 ...

  10. CPU过高的排查方法

    一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环. (友情提示:本博文章欢迎转载,但请注明出处:hankchen,http://www.blogjava.net/hank ...