前端跨域请求jsonp实现

      跨域问题来历于JavaScript的同源策略, 即只有 和谈+本家儿机名+端标语 (如存在)不异, 则许可彼此拜候, 有一种分歧即不克不及拜候 。 也就是说JavaScript只能拜候和操作本身域下的资本, 不克不及拜候和操作其他域下的资本 。 跨域问题是针对JS和ajax的, html自己没有跨域问题, 好比a标签、script标签、甚至form标签(可以直接跨域发送数据并领受数据)等 。
      JSONP(JSON with Padding)是JSON的一种“利用模式”, 可用于解决本家儿流浏览器的跨域数据拜候的问题 。 因为同源策略, 一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的办事器沟通, 而 HTML 的<script> 元素是一个破例 。 操纵 <script> 元素的这个开放策略, 网页可以获得从其他来历动态发生的 JSON 资料, 而这种利用模式就是所谓的 JSONP 。 用 JSONP 抓到的资料并不是 JSON, 而是肆意的JavaScript, 用 JavaScript 直译器执行而不是用 JSON 解析器解析 。

需要这些哦
电脑
java便捷东西 intellij IDEA或者eclipse
前端编纂东西HBuilder非必需可以利用java编纂东西取代
第一
:建立一个javaweb项目1第一种:建立一个springboot的项目 。
1、 打开建立页面 选择File-new-project..
2、选择建立的项目为spring initializr 进入springboot项目建立
(也可以选择类型java, 建立一个通俗java项目)
3、输入项目名字, 选择依靠web(按照项目需求选择, 此次需要), 选择存放目次-完当作(Finish)

前端跨域请求jsonp实现

文章插图

前端跨域请求jsonp实现

文章插图

前端跨域请求jsonp实现

文章插图

前端跨域请求jsonp实现

文章插图

前端跨域请求jsonp实现

文章插图

2第二种:建立一个简单的javaweb项目 。
1、直接打开:https://jingyan.baidu.com/article/ff411625048acf12e482373a.html
2、或者百度搜刮:servlet类若何映射到url路径 百度经验

前端跨域请求jsonp实现

文章插图

第二
:项目筹办1第一步:编写被挪用项目标controller 。
1、需要集当作springmvc, springboot项目集当作web就包含springmvc, 通俗的servlet需要:
PrintWriter w = response.getWriter();w.print(json);
2、端口默认8080
3、controller代码如下所示
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
@RestController
public class TestController {
@RequestMapping("/bean")
public String testJson(HttpServletRequest request,
HttpServletResponse response, Map paramMap) {
String callback = request.getParameter("callback");
String id = request.getParameter("id");
String name = request.getParameter("name");
String sex = request.getParameter("sex");
String json = "{'id':" + id + ",'name':'" + name + "','sex':'" + sex
+ "'}";
if (callback != null) {
json = callback + "(" + json + ")";
}
return json;
}
}
4、启动办事并测试:

推荐阅读