美文网首页
在使用jsonp时遇到的问题

在使用jsonp时遇到的问题

作者: lothar_cly | 来源:发表于2016-04-05 16:01 被阅读81次

今天在使用ajax发送请求的时候遇到了一点问题,就是跨域。显然这就是需要用到JSONP了。
使用的是Jquery来完成的AJAX请求

$.getJSON('url?jsoncallback=?', {        
categoryId: "1",    
}, function (data) {});

js大致就是这个样子。
主要的是后台传输数据的格式变化。
比较一下 ajax返回jsonjsonp的格式:

{"message":"success", "code":"200","result":{"name":"test","id":1,"description":"11"}}

jsonp返回的格式:

callback({"message":"success", "code":"200","result":{"name":"test","id":1,"description":"11"}})

urlcallback传到后台的参数是什么,callback就是什么, jsonpjson外面有多了一层callback()
既然返回的数据结构有区别,那么后台的提供服务的方法也是要发生变化的。我使用的方法就是在HttpServletResponse中进行操作。

String value = callback + "(" + JSON.toJSONString(result) + ")";
HttpServletResponse.getOutputStream().write(value.getBytes("UTF-8"));

直接写到response中,然后前台正常操作。
关于json和jsonp之间的关系与区别 这篇文章讲的很不错。

相关文章

  • 在使用jsonp时遇到的问题

    今天在使用ajax发送请求的时候遇到了一点问题,就是跨域。显然这就是需要用到JSONP了。使用的是Jquery来完...

  • [记录]nginx 配置反向代理

    有时候在本地进行开发时,可能会遇到跨域的问题,我所知道的有这么几种解决方案: 使用 jsonp(需要服务端配合) ...

  • 常见跨域解决方案

    跨域 JSONP 使用 标签不受同源策略影响的特性,作为Ajax传输技术称为JSONP。 使用JSONP时,需要服...

  • 使用JSONP解决ajax跨域

    在日常开发中,不免遇到跨域的问题。在这里我们介绍使用Jsonp来解决ajax跨域的问题 什么是跨域? 跨域,指的是...

  • jsonp使用中遇到的问题 Uncaught SyntaxErr

    以前直接用jQuery的$.ajax({dataType:"jsonp"})方法做跨域请求,没有深入研究why和h...

  • JSONP

    使用JSONP解决同源限制问题 JSONP是json with padding的缩写,它不属于Ajax请求,但是可...

  • express 配置跨域

    前后端分离开发,经常遇到的问题就是跨域问题,以前会使用jsonp 进行跨域,但不是很优雅;现在有了 CORS 后端...

  • spring boot CORS 支持

    一、Web 开发经常会遇到跨域问题,解决方案有:jsonp,iframe,CORS 等等 CORS 与 JSONP...

  • Ajax请求跨域问题

    遇到ajax请求跨域问题,解决方式,改dataType为jsonp json和jsonp返回数据格式json格式 ...

  • jsonp

    JSONP 是一种无需考虑跨域问题即可传送 JSON 数据的方法。 JSONP 不使用 XMLHttpReques...

网友评论

      本文标题:在使用jsonp时遇到的问题

      本文链接:https://www.haomeiwen.com/subject/leuplttx.html