码迷,mamicode.com
首页 > Web开发 > 详细

天易38----sturts2+jsonp的使用

时间:2015-05-13 16:50:38      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

一:百度介绍:

JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的<script> 元素是一个例外。利用 <script> 元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 资料,而这种使用模式就是所谓的 JSONP。用 JSONP 抓到的资料并不是 JSON,而是任意的JavaScript,用 JavaScript 直译器执行而不是用 JSON 解析器解析

二:前端使用:

<script type="text/javascript">

function test(){

$.ajax({

type: "post",
dataType:‘jsonp‘,
jsonp:‘callback‘,
data : $(‘#register_formId‘).serialize(),
url:‘http://192.168.191.1:8080/H5Web/menushowmanage/menushowmanage/jsonpTest?
callback=?‘,
success:function(data){
       if(data.result_code=="200"){
        alert("您的操作执行成功!");
        }else{
        alert("操作失败")
        }
     },error:function(XMLHttpRequest, textStatus, errorThrown) {
alert("404");
       alert(XMLHttpRequest.status);
       alert(XMLHttpRequest.readyState);
       alert(textStatus);
       alert(XMLHttpRequest.responseText);
}
});
}
</script>

三:后端示例

private String callback;//前端jsonp动态生成函数名称

 /**
     * get与set方法
     */

public String getCallback() {
return callback;
}
public void setCallback(String callback) {
this.callback = callback;
}

/**
* jsonp使用方法
*/
public void jsonpTest(){
System.out.println("---url:"+url+"--callback:"+callback);
Gson gson=Constants.GSON;
    BaseRes bs=new BaseRes();
    bs.setResult_code(SuccessCode.CLIENT_SUCCESS.getResult());
    this.print(callback+"("+gson.toJson(bs)+")");//jsonp返回格式,callback表示前端jsonp提交后台的一组随机方法,但callback名称要和前端保持一致
}

返回前端页面jsonp的格式:

jQuery18007564855464734137_1431501866366({"result_code":"200"})

其中jQuery18007564855464734137_1431501866366是通过前端随机生成传递后台的callback值

天易38----sturts2+jsonp的使用

标签:

原文地址:http://blog.csdn.net/wangzihu/article/details/45693521

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!