• RestEasy 3.x 系列之三:jsonp


    跨域请求解决方法(JSONP, CORS)提到解决跨域可以使用jsonp,RestEasy自带jsonp的拦截器

    一、RestEasy的文档如下:

    If you're using Jackson, Resteasy has JSONP that you can turn on by adding the providerorg.jboss.resteasy.plugins.providers.jackson.JacksonJsonpInterceptor (Jackson2JsonpInterceptor if you're using the Jackson2 provider) to your deployments. If the media type of the response is json and a callback query parameter is given, the response will be a javascript snippet with a method call of the method defined by the callback parameter. For example:

    GET /resources/stuff?callback=processStuffResponse
    

    will produce this response:

    processStuffResponse(<nomal JSON body>)
    

    This supports the default behavior of jQuery.

    You can change the name of the callback parameter by setting the callbackQueryParameter property.

    意思是:1、添加org.jboss.resteasy.plugins.providers.jackson.Jackson2JsonpInterceptor拦截器。2、media type为json。3、有一个callback参数。

    二、试验一下

      1、json和jsonp都在resteasy-jackson2-provider里面,pom.xml:

    		<dependency>
    			<groupId>org.jboss.resteasy</groupId>
    			<artifactId>resteasy-jackson2-provider</artifactId>
    			<version>3.0.9.Final</version>
    		</dependency>
    

      2、web.xml:

    	<context-param>
    		<param-name>resteasy.providers</param-name>
    		<param-value>org.jboss.resteasy.plugins.providers.jackson.Jackson2JsonpInterceptor</param-value>
    	</context-param>
    

    但是有问题,最后使用

    GET http://localhost:8080/RestEasy_02_Jsonp/json/product/get?callback=aaa

    返回:aaa({"name":"iPad 3","age":999}

    注意后面少了一个")"

    但是

    POST http://localhost:8080/RestEasy_02_Jsonp/json/product/post?callback=back

    返回:back(Product created : com.tutu.domain.Product@5ad557c2) 正常

    不知道什么问题,有知道的麻烦告诉一下 

    三、源码下载

      附件:RestEasy_02_jsonp.zip

    参考:http://stackoverflow.com/questions/5350924/how-enable-jsonp-in-resteasy

  • 相关阅读:
    tomcat配置用户角色权限
    jenkins集成maven
    centos7安装maven
    jenkins凭证插件的安装和基本使用
    Jenkins用户权限管理
    虚拟机NAT模式配置静态IP
    制作sentinel docker镜像
    docker安装nacos
    Tkinter
    neo4j导入csv文件
  • 原文地址:https://www.cnblogs.com/lxsky/p/4157255.html
Copyright © 2020-2023  润新知