jsonp处理方法

	private void sendJSONP(HttpServletResponse resp, CharSequence json, String jsonp) {
		resp.setContentType(JSON_CONTENT_TYPE);
		PrintWriter writer = null;
		try {
			writer = resp.getWriter();
			writer.write(jsonp + "(" + json.toString() + ")");
			log.debug("response output:" + json);
		} catch (IOException e) {
			log.error("export JSON 出错:" + e.getMessage());
			if (log.isDebugEnabled()) {
				log.debug("", e);
			}
			throw new RuntimeException(e.getMessage(), e);
		} finally {
			if (writer != null) {
				writer.flush();
				writer.close();
			}
		}
	}

调用方法

		this.sendJSONP(resp, JsonUtils.Map2json(returnMap), request.getParameter("callback"));


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JSONP(JSON with Padding)是一种跨域解决方案,它利用了 <script> 标签可以跨域请求资源的特性。使用 JSONP,可以在客户端通过动态创建 <script> 标签来请求跨域资源。 下面是使用 JSONP 的步骤: 1. 在客户端定义一个回调函数,该回调函数用于处理从服务端返回的数据。 ``` function handleData(data) { // 处理从服务端返回的数据 } ``` 2. 创建一个 <script> 标签,将服务端的 URL 作为其 src 属性值,并在 URL 后面添加一个参数名为 callback,其值为刚才定义的回调函数名。 ``` const script = document.createElement('script'); script.src = 'http://example.com/data?callback=handleData'; document.body.appendChild(script); ``` 3. 服务端返回的数据应该是一个函数调用,该函数名为刚才在 URL 中指定的回调函数名,并且该函数的参数应该是需要返回给客户端的数据。 ``` handleData({"name": "John", "age": 30}); ``` 4. 客户端会接收到从服务端返回的数据,并且该数据会作为回调函数 `handleData()` 的参数传入。 注意事项: - 服务端返回的数据必须是一个函数调用,其中函数名是客户端指定的回调函数名。 - JSONP 只支持 GET 请求。 - JSONP 存在安全风险,因为客户端无法确定服务端返回的数据是否可信,服务端也无法确定客户端是否可信。因此,如果使用 JSONP,应该保证服务端返回的数据是安全可信的。 希望以上解释能够帮助您理解 JSONP 的实现方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值