时间:2020-11-22 22:45:25 | 栏目:JavaScript代码 | 点击:次
在LayUI图片上传中,解决由跨域问题引起的请求接口错误的方法
在ssm框架整合中,使用layui作为前端页面,拖拽图片上传,填写接口后,后台能够成功接收到数据,但由于页面资源和后台访问地址的不一致(即使域名一致但端口不一致)引起跨域问题,导致接收资源后在前端无法接收到后台返回的数据。
前台页面:
<html> <head> <meta charset="UTF-8"> <title>校园网络打印</title> <link rel="stylesheet" type="text/css" href="css/layui.css" rel="external nofollow" /> </head> <body bgcolor="#F0F0FF"> <div class='layui-upload-drag' id='test10'> <i class='layui-icon'>?v</i>" <p>点击上传,或将文件拖拽到此处</p> </div> </body> <script src="layui.all.js" type="text/javascript"></script> <script type="text/javascript"> $(function(){ layui.use('upload', function(){ var $ = layui.jquery; upload = layui.upload; //拖拽上传 upload.render({ elem: '#test10', url: 'http://127.0.0.1:8088/file/picture', choose: function(obj){ alert(11111); }, done: function(res){ alert(res.code); } }); }); </script> </html>
后台代码如下:
@Controller @RequestMapping("/file") public class FileController { @RequestMapping(value="/picture",method= {RequestMethod.POST}) @ResponseBody public String upLoad(MultipartFile file,HttpServletResponse response) { response.addHeader("Access-Control-Allow-Origin", "*");//解决跨域问题的方法之一,但有弊端 System.out.println(file.getName()); System.out.println(file.getSize()); return "{\"code\":\"0\",\"msg\":\"1\",\"data\":\"111\"}"; } }
解决思路:解决跨域问题的方法适用。