多语言展示
当前在线:1238今日阅读:167今日分享:16

ajax跨域解决方法

Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。      Ajax = 异步 JavaScript 和 XML 或者是 HTML(标准通用标记语言的子集)。      Ajax 是一种用于创建快速动态网页的技术。      Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。      通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。      传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。
工具/原料
1

电脑

2

intellij IDEA或者eclipse

第一步骤:创建一个javaweb的项目
1

第一种:创建一个springboot的项目(也可以创建一个简答的java项目)。1、 打开创建页面 选择File-new-project..2、选择创建的项目为spring initializr 进入springboot项目创建步骤(也可以选择类型java,创建一个普通java项目)3、输入项目名字,选择依赖web(根据项目需求选择,此次需要),选择存放目录-完成(Finish)

第二步骤:使用jquery的ajax实现跨域请求
1

第一步:编写一个controller。关键点是需要获取前端的callback参数并返回,包裹需要解析的json数据。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;@RestControllerpublic 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 = callback + '(' + '{'id':' + id + ','name':'' + name + '','sex':'' + sex + ''}' + ')'; return json; }}

2

第二步:编写前端页面请求。1、注意需要引入jquery2、callback=?一定要传,后台解析3、dataType的类型一定注意在特殊的情况下定义为“json” 也是可以的 不过一般为:dataType: 'jsonp',

3

第三步:测试。1、启动被调用服务,并测试2、启动调用服务,打开需要调用的页面如下如下所示:

第三步骤:总结
1

第一步:还可以使用jquery插件jquery.jsonp.js实现跨域下载地址:https://github.com/congmo/jquery-jsonp/tree/master/srcfunction  jsontest(){    //下载引入引入jquery.jsonp.js       //https://github.com/congmo/jquery-jsonp/tree/master/src $.jsonp({  url: 'http://localhost:8080/bean?callback=?',  'success': function(data) {   console.log(data.id+data.name+data.sex);  },  'error': function(d,msg) {    console.log(data)  } });    }

2

第二步:$.getJSON实现跨域$.getJSON('http://localhost:8080/bean?callback=?', {id:2,name:'李四',sex:'男'},    function(data) { alert(data.id+data.name+data.sex); });

3

第三步:总结。实际上我们在参数中传输callback参数与,jquery就认为你在发送跨域请求,此时你不定义dataType: 'jsonp',请求仍然没有问题。

注意事项

jdk 1.8

推荐信息