使用JSONP进行跨域请求

JSP页面的ajax:

  $.ajax({ // get pagedata
            type : "post",
            url : treasureBaseURL2,
            dataType : "jsonp",
            data : {productId : 123, userMobile : ‘12324‘},
            jsonp : "callbackparam",
            jsonpCallback : "success_jsonpCallback",
            success : function(data) {
                var object = eval(data[0].result);
                $(object).each(function(index) {
                    alert(object[index].treasureCode);
                });
            },
            error : function() {
                alert(‘Error‘);
            }
        });

Controller中的Java:

  @RequestMapping(value = "/orderlist/{page}", produces="text/html;charset=UTF-8")
    public void search(@PathVariable(value = "page") Integer page, @ModelAttribute("formBean") AdminOrdersQueryFormBean formBean,HttpServletRequest request, HttpServletResponse response, Model model) throws Exception {
        Page<AdminOrdersFormBean> data = new Page<AdminOrdersFormBean>();

        logger.info(page + "===admin===" + formBean.getProductId() + "," + formBean.getUserMobile());
        List<AdminOrdersFormBean> productFormBeans = getOrdersFormBeans();  // 获取数据

        data.setResult(productFormBeans);
        data.setPageNo(page);
        data.setPageSize(8);
        data.setTotalCount(22);

        String callbackFunName =request.getParameter("callbackparam");
        response.getWriter().write(callbackFunName + "([ " + JsonUtil.toJson(data) + "])");
    }
JsonUtil.java , Page.java

返回数据‘data‘示例:
success_jsonpCallback([ {"pageNo":1,"pageSize":8,"orderBy":null,"order":null,"autoCount":true,"result":[{"orderId":222,"parentId":null,"userId":null,"userName":"dada0","userMobile":"ddddd","treasureCode":"3123213,31313,3131","okCode":null,"cTime":"2015-12-14","productId":3131,"productTerm":3},{"orderId":223,"parentId":null,"userId":null,"userName":"dada1","userMobile":"ddddd","treasureCode":"3123213,31313,3131","okCode":null,"cTime":"2015-12-14","productId":3132,"productTerm":3}],"totalCount":22,"totalPages":3,"orderBySetted":false,"hasNext":true,"nextPage":2,"hasPre":false,"prePage":1,"first":1}])
时间: 2024-11-05 18:42:18

使用JSONP进行跨域请求的相关文章

Vue中使用jsonp进行跨域请求

Vue-resouse中可以通过this.$http.jsonp的方式直接使用jsonp进行跨域请求.官方在推荐使用axios之后,axios并没有集成jsonp.但在axios的github中(https://github.com/mzabriskie/axios/blob/master/COOKBOOK.md#jsonp),可以直接安装jsonp并使用他来坐跨域请求. <script> var jsonp = require('jsonp'); export default { data(

PHP AJAX JSONP实现跨域请求使用实例

在之前我写过“php返回json数据简单实例”,“php返回json数据中文显示的问题”和“在PHP语言中使用JSON和将json还原成数组”.有兴趣的童鞋可以看看 今天我写的是PHP AJAX JSONP使用的实例.不清楚jsonp是什么的请自己搜索 实例1 test.html <!doctype html> <html> <head> <meta charset="utf-8"> <title>test</title

Nginx反向代理、CORS、JSONP等跨域请求解决方法总结

由于 Javascript 同源策略的存在使得一个源中加载来自其它源中资源的行为受到了限制.即会出现跨域请求禁止. 通俗一点说就是如果存在协议.域名.端口或者子域名不同服务端,或一者为IP地址,一者为域名地址(在跨域问题上,域仅仅是通过“ url的首部 ”来识别而不会去尝试判断相同的IP地址对应着两个域或者两个域是否同属同一个IP),之中任意服务端旗下的客户端发起请求其它服务端资源的访问行动都是跨域的,而浏览器为了安全问题一般都限制了跨域访问,也就是不允许跨域请求资源. 但很多时候我们却又不得不

用JSONP方式跨域请求

JQUERY 中封装的JSONP请求方法 1.index.html 中的javascript $(function(){ $.ajax({   type: "GET",   async:false,   url: "http://www.vm.com:81/index.php", //跨域请求的地址   data:{'birt':2016},   dataType: 'jsonp',   jsonp: 'jsoncallback',   success: funct

mvc中使用jsonp进行跨域请求详细说明

在web开发中,如果你要在不同域下进行数据异步请求,会出现一个No ‘Access-Control-Allow-Origin’ header is present on the requested resource.”的错误提示.该提示信息说明,跨域请求是违反了“同源策略”的.但是在开发中又难免会遇到跨域请求的需求,所以前辈们也是留下了跨域请求数据的方法jsonp跨域请求. 我们以最为典型的Jquery做例子,后台用的asp.net mvc.我们先构造一个action的返回对象,用于返回json

利用jsonp实现跨域请求

同源策略,它是由Netscape提出的一个著名的安全策略.现在所有支持JavaScript 的浏览器都会使用这个策略.所谓同源是指,域名,协议,端口相同.当一个浏览器的两个tab页中分别打开来 百度和谷歌的页面当浏览器的百度tab页执行一个脚本的时候会检查这个脚本是属于哪个页面的,即检查是否同源,只有和百度同源的脚本才会被执行.如果非同源,那么在请求数据时,浏览器会在控制台中报一个异常,提示拒绝访问. 由于同源策略,我们在使用ajax请求资源时不能跨域请求,也就是说必须是同一个域名,协议,端口.

来说说SpringMVC + JSONP的跨域请求

先来说说场景,JSON,这货大家应该都懂,不懂的请自动面壁思过,那么什么是JSONP,不是JSON放了个P就叫JSONP,而是JSON with Padding,在进行跨域请求的时候需要的数据,什么是跨域,打个比方:在user.weixin.com下的某个页面下,用户服务需要调用订单服务,请求order.weixin.com,那么在这两个二级域名下,请求是互斥的,如果请求就会报错. 先来看看本域下的请求,同域名下是可以获取到json数据的 那么如果换一个域名呢?可以看到请求被拒绝了,说到底这还是

不用jsonp实现跨域请求

这几天要用到跨域请求,我在网上找了好多资料,最后自己研究出来一个比较简单方便的, 请求的过程和jquery普通的ajax一样.我用的是.net平台 ,IIS7.5 来看一下后台的代码,我是用MVC的Controll做数据接口. 接下来是前台代码了: <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio

ajax jsonp的跨域请求

1.页面ajax的请求 $.ajax({ async: false, url: 'http://localhost:8080/downloadVideos',//跨域的dns/document!searchJSONResult.action, type: "GET", dataType: 'jsonp', jsonp: 'jsoncallback', jsonpCallback: "cb",//自定义返回函数的名称,要与服务端保持一致 data: { id:ID,

使用Jsonp实现跨域请求

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