Java+jquery+jsonp实现跨域

简介: jquery端代码 $.ajax({          async:false,          url: 'http://www.

jquery端代码

 $.ajax({ 
         async:false, 
         url: 'http://www.**.com/**/jsonp', // 跨域URL 
         dataType: 'jsonp', 
         timeout: 5000, 
         success: function (json) { 
          alert(JSON.stringify(json));
         }
     });

java web端代码

    @ResponseBody
    @RequestMapping(value = "/jsonp",method=RequestMethod.GET)
    public String jsonp(HttpServletRequest request) {
        String callback =request.getParameter("callback");
        return callback+"([{name:'jsonp',age:'30'},{name:'jack',age:'90'}])";
    }

执行结果

[{"name":"jsonp","age":"30"},{"name":"jack","age":"90"}]

 以上是不指定任何参数,jquery自动传递一个callback参数到后台,成功后,回调success函数。

  $.ajax({ 
         async:false, 
         url: 'http://www.**.com/**/jsonp', // 跨域URL 
         dataType: 'jsonp',

         jsonp:'jsoncallback',//自定义参数名称
         timeout: 5000, 
         success: function (json) { 
          alert(JSON.stringify(json));
         }
     });

 java web端代码

    @ResponseBody
    @RequestMapping(value = "/jsonp",method=RequestMethod.GET)
    public String jsonp(HttpServletRequest request) {
        String jsoncallback=request.getParameter("jsoncallback");//指定接受参数为jsoncallback
        return jsoncallback+"([{name:'jsonp',age:'30'},{name:'jack',age:'90'}])";
    }

 以上是自定义参数名称,后台指定接受通过jsonp冒号传递的函数名称。

         $.ajax({ 
         async:false, 
         url: 'http://www.**.com/**/jsonp', // 跨域URL 
         dataType: 'jsonp',

         jsonp:'jsoncallback',//自定义参数名称

         jsonpCallback:"success_jsonpCallback",//定义回调函数名称
         timeout: 5000, 
         success: function (json) { 
          alert(JSON.stringify(json));
         }
     });

var success_jsonpCallback=function(json){

    alert(JSON.stringify(json)+"********");

}

执行结果

[{"name":"jsonp","age":"30"},{"name":"jack","age":"90"}]********

[{"name":"jsonp","age":"30"},{"name":"jack","age":"90"}]

 以上是自定义回调函数名称,执行成功后,先执行jsonpCallback定义的回调函数,后执行success函数。

相关文章
|
5月前
|
JavaScript 安全 Java
Java - 探究前后分离带来的跨域问题
Java - 探究前后分离带来的跨域问题
44 1
|
5月前
|
缓存 前端开发 Java
13:SpringBoot跨域解决方案-Java Spring
13:SpringBoot跨域解决方案-Java Spring
165 0
|
2月前
|
JavaScript Java
点击按钮,向下添加目录。Java script+jQuery写法
点击按钮,向下添加目录。Java script+jQuery写法
17 1
|
2月前
|
安全 前端开发 Java
Web端系统开发解决跨域问题——以Java SpringBoot框架配置Cors为例
在Web安全上下文中,源(Origin)是指一个URL的协议、域名和端口号的组合。这三个部分共同定义了资源的来源,浏览器会根据这些信息来判断两个资源是否属于同一源。例如,https://www.example.com:443和http://www.example.com虽然域名相同,但由于协议和端口号不同,它们被视为不同的源。同源(Same-Origin)是指两个URL的协议、域名和端口号完全相同。只有当这些条件都满足时,浏览器才认为这两个资源来自同一源,从而允许它们之间的交互操作。
Web端系统开发解决跨域问题——以Java SpringBoot框架配置Cors为例
|
2月前
|
JavaScript Java
分别使用java script和jQuery添加页面元素
分别使用java script和jQuery添加页面元素
27 0
|
3月前
|
缓存 前端开发 Java
在Java项目中实现跨域资源共享(CORS)
在Java项目中实现跨域资源共享(CORS)
|
JSON 前端开发 JavaScript
AJAX(GET POST请求、 jQuery axios 发送请求、跨域--cors、请求超时、网络异常、放弃请求、重复发送请求)(三)
AJAX(GET POST请求、 jQuery axios 发送请求、跨域--cors、请求超时、网络异常、放弃请求、重复发送请求)(三)
|
4月前
|
Java 应用服务中间件 nginx
Java 解决跨域
Java 解决跨域
20 0
|
5月前
|
Java
【Java专题_03】spring-boot跨域问题如何解决
【Java专题_03】spring-boot跨域问题如何解决
44 0
|
5月前
|
JavaScript 前端开发 Java
Java其他: 解释一下跨域资源共享(CORS)。
Java其他: 解释一下跨域资源共享(CORS)。
84 0
下一篇
无影云桌面