java配合前端实现跨域
来源:互联网 发布:splice js循环 编辑:程序博客网 时间:2024/04/29 22:01
后台代码:
前端服务器端口为8082
import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;@RestControllerpublic class AjaxTest { @RequestMapping(value = "AjaxTest") public String getMobileAuthCode(HttpServletRequest request, String callback1, String op) throws Exception { String result = ""; if (op.equals("1")) { result = "{'result':'mzd跨域成功'}"; } result = callback1 + "(" + result + ")"; return result; }}
一、java+ajax+jsonp实现跨域:
前台代码:
前端服务器端口为8080
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %><!DOCTYPE html PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head> <meta charset="UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> <script type="text/javascript" src="/js/jquery-1.7.2.js"></script> <script type="text/javascript"> $(function () { $.ajax({ url: 'http://localhost:8082/AjaxTest', type: 'post', dataType: 'jsonp', <!--如果jsonp中的参数不指定,则默认的是callback,即后台参数需要指定为callback,如果jsonp中指定参数,则jsonp中的参数需要和后台参数保持一致,就相当于安全认证,参数一致表示允许跨域请求接口--> jsonp: "callback1", data: { "op": '1', }, success: function (data) { $("#a").html(data.result); }, error: function (data) { alert("跨域失败") } }); }) </script></head><body><div id="a"></div></body></html>
二、java+头部append一个脚本发起跨域请求:
前台代码:
前端服务器端口为8080
<%@ page pageEncoding="utf-8" contentType="text/html;charset=UTF-8" language="java" %><html><head> <title></title> <script type="text/javascript" src="/js/jquery-1.7.2.js"></script> <script> function showData(data) { $("#b").val(data.result); } $(function () { $("#a").click(function () { <!--在script里面指定回调函数名字,后台参数要和这个回调函数名字保持一致--> $("head").append("<script src='http://localhost:8082/AjaxTest?op=1&callback1=showData'><\/script>"); }); }) </script></head><body><input id="a" type="button" value="跨域请求"/><input id="b"/></body></html>
注意:
无论是第一种还是第二种实现的跨域,其实现的原理都是get请求,虽然第一种指明了 type: ‘post’,即指明了post请求,但是还会被转换为get请求(不信你可以将后台的请求设置为只允许post请求:@RequestMapping(value = “AjaxTest”,method = RequestMethod.POST),看看还能否跨域),因为jsonp的实现原理底层还是和第二种一致的
阅读全文
0 0
- java配合前端实现跨域
- spring boot 配合前端实现跨域
- java xml配合实现读取配置文件登陆
- JQuery与Servlet配合实现跨域请求
- Java Web自定义邮箱服务器,实现前端跨域访问
- js实现前端跨域
- 前端与美术的配合
- 前端与后端的配合
- 实现Onvif设备发现并与前端配合进行快速部署
- java后端配合app前端的支付宝和微信支付(逻辑相关代码)
- Java Script与PHP配合实现智能化的搜索界面
- 回文的java实现(栈和队列的配合)
- Java Swing JList配合JTree实现小小的联动
- JAVA生成验证吗jsp接收配合strut2实现
- jsp配合java文件实现用户登录程序
- web 前端和后台配合工作流程
- cocos2dx 与java配合
- 跟java配合
- 微信公众号配置token出错
- QML开发实例(一)Qt5.9安装与介绍
- SVN使用笔记——commit是出现e155010:提交失败
- 免安装版Tomcat配置环境变量
- 蓝凌OA统计程流审批效率SQL
- java配合前端实现跨域
- SpringMVC之Web-统一异常处理(七)
- 为什么说员工下班之后关闭电脑是不合格的现代企业?
- 矩阵乘法次数优化
- iOS 收到推送后,播放声音
- ArcGIS实现打点弹窗
- OpenWrt驱动开发的一个小坑 kmod: missing module (null) 问题解决
- 赋值语句的运用
- 如何解决U盘拷贝时提示文件过大问题