jsonp跨域请求处理

Jsonp(JSON with Padding) 是 json的一种"使用模式",可以让网页从别的域名(网站)那获取资料,绕过同源策略(若地址里面的协议、域名和端口号均相同则属于同源),即跨域读取数据。

jsonp:利用script标签可以跨域,让服务器端返回可执行的Javascript函数,参数为要回发的数据。可看做带有回调函数的ajax请求。

js代码

<script type="text/javascript">
$(function(){
/*
//简写形式,效果相同
$.getJSON("http://app.example.com/base/json.do?sid=1494&busiId=101&jsonpCallback=?",
function(data){
$("#showcontent").text("Result:"+data.result)
});
*/
$.ajax({
type : "get",
async:false,
url : "http:/XXX",
dataType : "jsonp",//数据类型为jsonp
jsonp: "jsonpCallback",//服务端用于接收callback调用的function名的参数
jsonpCallback:"自定义回调函数名"
success : function(data){
alert(data.info)
},
error:function(){
alert('fail');
}
});
});
</script>

java后端处理代码

    @ResponseBody
@RequestMapping(value = "/url", produces= MediaType.APPLICATION_JSON)
public String test(
HttpServletRequest request,
HttpServletResponse response) throws Exception{
String result = getResult();
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "private,no-cache,no-store,max-age=0");
response.setDateHeader("Expires", 0);
String str=request.getParameter("jsonpCallback");
if (str==null||str.equals("")) {
return result;
} else {
return str + "(" + result + ")";
}
}

CORS(协议跨域资源共享”)(Cross-origin resource sharing)

它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制 详细介绍 戳此

  • Access-Control-Allow-Origin:* 允许所有域名的脚本访问该资源
  • Access-Control-Allow-Methods:GET,POST,PUT,DELETE,OPTIONS 运行什么方式访问资源
  • Access-Control-Expose-Headers:x-requested-with 暴露的信息

java web支持jsonp跨域的更多相关文章

  1. 支持JSONP跨域的对象

    支持JSONP跨域的对象 1:img 2:iframe 3:link 4:script 为什么,JSONP 最终选择是 script 实现呢?度娘来也! 平常我们进行JSONP请求数据,因为 json ...

  2. ahjesus 让我的MVC web API支持JsonP跨域

    无数被跨域请求爆出翔来的人 遇到请求成功却不能进入success 总是提示parsererror 参考一下两篇文章吧 参考文章http://www.asp.net/web-api/overview/s ...

  3. java web应用下跨域3招

    一.设置服务器端,让ajax能直接调用 服务器端设置 tomcat 设置为例: 在web.xml中添加如下过滤器 <filter> <filter-name>CorsFilte ...

  4. mui getJSON实现jsonp跨域

    //刚开始做APP的时候,后台给的方式是jsonp,然后就百度mui框架的jsonp跨域,看了好多文章,都说可以支持,但是大部分都是直接把别人复制来的,都不知道是不是真的能支持,做好打包完的时候,下载 ...

  5. 从零开始学 Java - Spring MVC 实现跨域资源 CORS 请求

    论职业的重要性 问:为什么所有家长都希望自己的孩子成为公务员? 答:体面.有权.有钱又悠闲. 问:为什么所有家长都希望自己的孩子成为律师或医生? 答:体面.有钱.有技能. 问:为什么所有家长都不怎么知 ...

  6. jQuery ajax的jsonp跨域请求

    一直在听“跨域跨域”,但是什么是跨域呢?今天做了一些了解.(利用jQuery的jsonp) jQuery使用JSONP跨域 JSONP跨域是利用script脚本允许引用不同域下的js实现的,将回调方法 ...

  7. 深入浅出:了解jsonp跨域的九种方式

    什么是“”跨域”: 跨域访问,简单来说就是 A 网站的 javascript 代码试图访问 B 网站,包括提交内容和获取内容.由于安全原因,跨域访问是被各大浏览器所默认禁止的.当一个域与其他域建立了信 ...

  8. jsonp 跨域请求

    背景: JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制,被称为"Same-Origin Policy"(同源 ...

  9. 我的jsonp跨域问题

    关于jsonp跨域问题,在这个方面也是了解一点点,先记录下来,主要作为以后查看,之前下载并安装过wampserver,了解到了jsonp和json的区别,现在谈谈跨域这个问题: 首先什么是跨域,简单地 ...

随机推荐

  1. php用户注册常用检测、写入

    // 判断数据库是否已经存在 $check_sql = "select * from user where idNumber='$idNumber'"; $check_query ...

  2. 扩增子图表解读1箱线图:Alpha多样性

    箱线图 箱形图(Box-plot)又称为盒须图.盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图.因形状如箱子而得名.在宏基因组领域,常用于展示样品组中各样品Alpha多样性的分布 第一种情 ...

  3. 浅谈animation里的forwards

    forwards可译为向前走, animation-fill-mode(动画填充模式),定义动画播放时间之外的状态 顾名思义,就是在动画播放完了之后给它一个状态 animation-fill-mode ...

  4. 1.4.1 安装Python扩展库

    Python之所以得到各行业领域工程师.策划师以及管理人员的青睐,与涉及各行业各领域开发的扩展库也有很大关系,不仅数量众多.功能强大,关键是用起来很方便.虽然Python标准库已经拥有了非常强大的功能 ...

  5. [cogs736][网络流24题#13]星际转移[网络流,网络判定]

    将一个空间站分为天数个点,每次枚举天数,每增加一天就把对应天数的边连上,用网络流判定可行性,即-判断最大流是否不小于k,注意编号不要错位.通过此题,可见一些网络流题目需要用到网络判定方法,但虽然答案具 ...

  6. Likecloud-吃、吃、吃(洛谷 1508)

    题目背景 问世间,青春期为何物? 答曰:“甲亢,甲亢,再甲亢:挨饿,挨饿,再挨饿!” 题目描述 正处在某一特定时期之中的李大水牛由于消化系统比较发达,最近一直处在饥饿的状态中.某日上课,正当他饿得头昏 ...

  7. 51Nod——T 1113 矩阵快速幂

    https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1113 基准时间限制:3 秒 空间限制:131072 KB 分值: 40 ...

  8. js移除style属性

    这个属性是通过   div.style.color="red"   这种类似添加的,想要添加重置函数,使用div.removeAttribute("style" ...

  9. window7 查找与杀掉占用端口的进程

    1.netstat -ano | findstr 3000 2.tasklist | findstr pid 3. taskkill -f -t -im 进程名

  10. 文件上传-jquery.uploadify.js

    <script type="text/javascript" src="../jquery_uploadify/jquery.uploadify-3.1.min.j ...