使用ajax跨域调用springboot框架的api传输文件

来源:脚本之家  责任编辑:小易  

1.三星S8+参考价格:6388元起屏幕大小:6.2英寸三星S8+是三星前不久推出的一款重磅安卓旗舰机,主打全面屏、顶配、安全等特性。外观上,三星S8+采用双面3D玻璃机身+金属中框设计,拥有黑、灰、金3种配色可选,正面配备3D曲面全面屏幕,视觉效果惊艳,背面同样为3D弧形玻璃,后置指纹传感器设计,颜值突出。配置上,6.2英寸2K超高清AMOLED屏幕,搭载高通骁龙835八核处理器,4/6GB内存和64/128GB存储空间,前置800万和后置1200万像素摄像头组合,内置3500mAh容量电池,支持快充,支持全网通双卡双待,运行SamsungExperience8.1系统。2.OPPOR9sP

在新项目中使用的是springboot编写的api,涉及到ajax跨域请求和传输文件的问题,在这里记录一下

我们无比兴奋地想告诉大家,发布的.NETCore1.0,ASP.NETCore1.0和EntityFrameworkCore1.0在Windows、OSX和Linux系统上可用了。.NETCore是一个跨平台,开源代码,模块化的.NET平台,可以用来创建现代网络应用,微服务,库和控制台应用程序。这次的发布包括.NET核心运行时、库和工具以及ASP.NET核心库。我们也发布了可以让你创建.NETCore项目的VisualStudio和VisualStudioCode扩展。你可以参照https://dot.net/core里的信息来开始,同时可以阅读发布摘要来获取详细发布信息。VisualStud

首先是前台页面的代码

聊文玩,找空空,关注文玩讲堂头条号,学习文玩知识!翡翠大家都知道,玩的就是一个种和色,那么应该如何用肉眼鉴定翡翠呢?如下几种方法可以提供大家参考。看翠性翡翠在光照下,组成翡翠晶体的晶粒的解理面反光。一个个犹如苍蝇翅膀的亮白色反光,因此也称“苍蝇翅”。“苍蝇翅”往往呈长条状或不规则片状出现,在未抛光或者结构较粗的翡翠中比较容易观察到。图为A货酸洗前,可见翠性“翠性”。看“桔皮效应A货翡翠抛光面上,通过反光观察,会出现类似于桔子皮的一个个大小、方向不同的凸起和凹陷的现象,内行称为“桔皮效应”。B、C货翡翠则为强酸强碱侵蚀而成的酸蚀纹,如同干涸的大地。如图,左边为A货的桔皮效应,右边为B货的酸蚀纹。

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>test_api</title> <script type="text/javascript" src="jquery-1.7.2.js"></script> <script type="text/javascript"> function test(){ var obj = new Object; obj.name = $("#name").val(); obj.age = $("#age").val(); var file = document.getElementById("file").files[0]; var formData = new FormData(); formData.append("data",JSON.stringify(obj)); formData.append("file",file); $.ajax({ type:"post", url:"http://localhost:8187/test/upload", contentType:false, processData:false, data:formData, success:function(data){ alert(data.msg); } }); } </script> </head> <body> <div class=""> <table> <tr> <td>sCompany:</td> <td><input type="text" id="name" value="tom" /></td> </tr> <tr> <td>scardtype:</td> <td><input type="text" id="age" value="23" /></td> </tr> <tr> <td>file:</td> <td><input type="file" id="file" /></td> </tr> </table> <input type="button" onclick="test();" value="提交" /> </div> </body> </html>

共享经济来源于互联网,但是共享经济带来的冲击将远远超过互联网本身,共享经济提供一种新的思维方式,通过过剩资源的再利用,替代了传统的生产力。因为过剩,所以变得便宜,因为过剩,不需要再生产,所以环保;因为过剩,所以顾客就是上帝开始变成了顾客就是服务者,顾客也提供服务,这就是共享的力量。产能过剩+共享平台+人人参与。同时也将这种模式叫做“人人共享”。人人共享整合了个人和企业的最佳能力,其实质就是高效利用每种资源和每个利益相关者,同时双方获益。分享资源会带来最高效益,分享知识会带来最伟大的创新。共享经济鼻祖罗宾蔡斯第一次创立zipcar,这也是共享经济的开端,zipcar是整合私人的车进行租赁服务的一

程序入口类的代码

package test; import javax.servlet.MultipartConfigElement; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.MultipartConfigFactory; import org.springframework.context.annotation.Bean; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; /** * Hello world! * */ @SpringBootApplication public class App { public static void main( String[] args ) { SpringApplication.run(App.class, args); } //设置ajax跨域请求 @Bean public WebMvcConfigurer corsConfigurer(){ return new WebMvcConfigurerAdapter(){ @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**").allowedOrigins("*"); } }; } @Bean public MultipartConfigElement multipartConfigElement(){ MultipartConfigFactory factory = new MultipartConfigFactory(); //设置上传文件大小限制 factory.setMaxFileSize("10MB"); //设置上传总数据大小 factory.setMaxRequestSize("15MB"); return factory.createMultipartConfig(); } }

api代码

package test.controller; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import test.model.UploadInfo; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @RestController @RequestMapping("/test") public class TestController { /** * 上传文件 * @param req form请求 * @return json字符串 */ @RequestMapping(value="/upload", method=RequestMethod.POST) public String uploadFile(HttpServletRequest req){ // 返回结果用 json对象 JSONObject returnObj = new JSONObject(); //从请求中获取请求的json字符串 String strData = req.getParameter("data"); //将获取到的JSON字符串转换为Imgidx对象 UploadInfo info = JSON.parseObject(strData, UploadInfo.class); //获取上传的文件集合 List<MultipartFile> files = ((MultipartHttpServletRequest)req).getFiles("file"); MultipartFile file = files.get(0); // 返回信息头部 Map<String, String> header = new HashMap<String, String>(); header.put("code", "0"); header.put("msg", "success"); File file1234 = new File(file.getOriginalFilename()); //插入数据的影响的数据条数 int result = 0; //将文件上传到save if(!file.isEmpty()){ try{ byte[] arr = new byte[1024]; BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file1234)); bos.write(arr); bos.flush(); bos.close(); }catch(Exception e){ header.put("code", "-1"); header.put("msg", "errorMsg:" + e.getMessage()); } }else{ header.put("code", "-1"); header.put("msg", "errorMsg:上传文件失败,因为文件是空的"); } String returnStr = returnObj.toJSONString(header); return returnStr; } }

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

SpringBoot下如何配置实现跨域请求

//设置跨域请求

@Configuration

public class CorsConfig {

private CorsConfiguration buildConfig() {

CorsConfiguration corsConfiguration = new CorsConfiguration();

// 1 设置访问源地址

corsConfiguration.addAllowedOrigin("*");

// 2 设置访问源请求头

corsConfiguration.addAllowedHeader("*");

// 3 设置访问源请求方法

corsConfiguration.addAllowedMethod("*");

return corsConfiguration;

}

@Bean

public CorsFilter corsFilter() {

UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();

// 4 对接口配置跨域设置

source.registerCorsConfiguration("/**", buildConfig());

return new CorsFilter(source);

}

}

注:“*”代表全部。”**”代表适配所有接口。

其中addAllowedOrigin(String origin)方法是追加访问源地址。

如果不使用”*”(即允许全部访问源),则可以配置多条访问源来做控制

SpringBoot+Vue CROS跨域问题

最简单办法,vue编译完后的文件放到后端容器内

springboot怎么配置允许跨域

  1、要将$http中的Content-Type设置为application/x-www-form-urlencoded因为目前的浏览器只支持这种类型的跨域

  2、需要在Application同级目录下写一个配置类,在里面配置一个返回类型为WebMvcConfigurerAdapter的Bean,用registry.addMapping("/*")设置拦截的范围"/*"代表拦截所有请求。

springboot怎么配置允许跨域

  1、要将$http中的Content-Type设置为application/x-www-form-urlencoded因为目前的浏览器只支持这种类型的跨域

  2、需要在Application同级目录下写一个配置类,在里面配置一个返回类型为WebMvcConfigurerAdapter的Bean,用registry.addMapping("/*")设置拦截的范围"/*"代表拦截所有请求。

  • 本文相关:
  • spring框架实现aop添加日志记录功能过程详解
  • spring整合quartz框架过程详解
  • springboot整合jquery和bootstrap框架过程图解
  • springboot2 集成log4j2日志框架的实现
  • ssm框架中测试单元的使用 spring整合junit过程详解
  • spring框架配置实体类复杂属性注入xml文件过程详解
  • springmvc框架实现图片上传与下载
  • springboot框架restful接口设置跨域允许
  • springboot多模块项目框架搭建过程解析
  • 使用html5中postmessage知识点解决ajax中post跨域问题
  • ajax跨域获取网站json数据的实例
  • ajax hacks chm文件与源代码 下载
  • ajax初体验之上手篇
  • jquery ajax实现文件上传功能实例代码
  • ajax返回的json内容进行排序使用sort()方法实现
  • ajax和跨域问题深入解析
  • 一个简单的asp+ajax留言本源码下载
  • ajax通讯原理xmlhttprequest
  • 配置chrome支持本地(file协议)的ajax请求
  • 在spring boot项目中遇到跨域访问问题,项目使用了OAuth2.0认证,现在调用接口时遇到了...
  • SpringBoot下如何配置实现跨域请求
  • SpringBoot+Vue CROS跨域问题
  • springboot怎么配置允许跨域
  • springboot怎么配置允许跨域
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved