jsonp实现跨域的原理,后台需要做哪些处理,是怎么实现的?
spring帮忙做的, JsonpAdvice上面加了个@ControllerAdvice就是它在起整体作用, 然后里面在处理相关操作。我觉得你应该了解一些spring的统一异常处理相关知识就明白了。
在浏览器开发者工具网络中可以从网络请求里面看到jsop函数名是什么,直接看网络请求中的参数传递,你会发现除了你自己传递的参数外,还多了一个东西,这个东西就是jsop函数名。
sonpAdvice不是一个服务类,它继承了abstractjsonpresponsebodyadvice,里面实现的方法是一个切面方法(不懂切面方法是什么的,可以去学习spring AOP切面编程),相当于一个拦截器,在返回数据时拦截。这里在返回之前拼接了jsonp函数,这个函数可以自定义名字,在ajax请求的时候,增加属性 jsop:函数名, 就可以自定义函数名了.
以上故事告诉我们,只有全栈工程师才能活下来,哇哈哈哈。