前言

项目中使用webuploader进行文件上传,需要用到跨域,查看webuploader的issues发现是支持上传的,但是他们写的回复都是不清不白的,有点迷糊;想了半天才知道咋回事,也可能是我比较笨,再次记录下java中详细的处理。

webuploader进行上传,会执行2个请求;一个option请求,一个post(根据你的webuploader的配置method 值决定),需要在option请求中对响应头进行处理,post响应头也进行响应的处理。

以servlet为例:

@WebServlet(description = "文件上传",value = {"/file/upload"})

public class FileUpload extends HttpServlet {

public FileUpload() {

super();

}

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

resp.setHeader("Access-Control-Allow-Origin", "*");

resp.setHeader("Access-Control-Allow-Methods", "*");

resp.setHeader("Access-Control-Allow-Headers", "x-requested-with,content-type");

resp.setContentType("application/json");

resp.setCharacterEncoding("utf-8");

//文件上传逻辑

}

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

doPost(req, resp);

}

@Override

protected void doOptions(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

resp.setHeader("Access-Control-Allow-Credentials", "false");

resp.setHeader("Access-Control-Allow-Origin", "*");

resp.setHeader("Access-Control-Allow-Methods", "*");

resp.setHeader("Access-Control-Allow-Headers", "x-requested-with,content-type");

resp.setContentType("application/json");

resp.setCharacterEncoding("utf-8");

super.doOptions(req, resp);

}

再次测试跨域上传,正常

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

java 跨域上传_java使用webuploader实现跨域上传详解相关推荐

  1. java实体字节属性定义_Java字节码方法表与属性表详解

    而这些字节其实对应的信息是它: 所以问题就来了,aload_0不是助记符信息么,怎么就能够跟字节码文件中的字节对应上呢?所谓助记符其实也就是帮忙我们去记忆的符合,在底层其实也是对应的一个个十六进制的数 ...

  2. java每一个小时同步_Java同步块(synchronized block)使用详解

    Java 同步块(synchronized block)用来标记方法或者代码块是同步的.Java同步块用来避免竞争.本文介绍以下内容: Java同步关键字(synchronzied) 实例方法同步 静 ...

  3. Java集合迭代器原理图解_Java Iterator接口遍历单列集合迭代器原理详解

    这篇文章主要介绍了Java Iterator接口遍历单列集合迭代器原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Iterator接口概述 ...

  4. java反射设置属性值_Java反射如何有效的修改final属性值详解

    前言 以前写过一篇 Java 反射修改 final 属性值,本文将在这里重新温习一下Java反射如何有效的修改final属性值,下面话不多说了,来一起看看详细的介绍: 假设有个类 class Pers ...

  5. java socket中的方法_Java中关于Socket的方法与作用详解

    1.java.net.Socket;套接字.封装了TCP通讯协议,使用它可以基于TCP与远端计算机上的服务端应用程序链接并进行通讯. 实例化Socket就是与服务器端建立连接的过程.这里需要传入两个参 ...

  6. java正确定义一维数组_java一维数组定义,创建一维数组详解

    前面给大家介绍了一下什么是java数组,下面要接着给大家介绍的就是java一维数组定的定义以及创建一维数组方面的知识. 数组当中的每个元素都只带有一个下标的时候,这样的数组就是一维数组,一维数组实质上 ...

  7. java的数组查找算法_java数组、排序算法、查找算法详解

    1.为什么定义数组要采用type[] arrayName;这种方式? 因为这种方式具有很好的可读性,使用这种方式很容易就可以理解这是定义一个变量,其中变量名是arrayName,变量的类型是type[ ...

  8. java super父类的父类_java super关键字,super访问父类成员详解

    之情给大家介绍了一下super调用父类构造方法方面的内容,下面要接着给大家介绍的就是super访问父类成员方面的内容,分别对super调用成员属性以及super调用成员方法做了详细介绍. 在子类的成员 ...

  9. java 对象重写equals方法_Java如何重写object类的equals方法详解

    1.Object类的equals()方法: 比较两个对象是否是同一个对象,equals() 方法比较两个对象,是判断两个对象引用指向的是同一个对象,即比较 2 个对象的内存地址是否相等.是则返回tru ...

最新文章

  1. 如何在XAF中显示自定义窗体和控件
  2. 高并发-【抢红包案例】之一:SSM环境搭建及复现红包超发问题
  3. 疯狂秀才权限管理系统,开源了
  4. android 名称解释
  5. 重读模电教材一_童诗白、华成英
  6. 2020.9.28 爱客影视3.6.5-pro完整版搭建完毕带解析接口无广告
  7. IsPostBack深入探讨
  8. Spark生态之Alluxio学习15--alluxio性能分析和加速方式
  9. 傅里叶变换对应的matlab函数,用MATLAB如何实现傅里叶变换
  10. 复合函数高阶求导公式_高中数学复合函数求导公式及法则
  11. Paper Notes: Cross-Domain Image Translation Based on GAN
  12. 如何发送国际短信更便宜、更稳定?
  13. 通过AI,领略皮影戏艺术 | MixLab人工智能
  14. MATLAB铁轨检测+异物识别
  15. Apk 拆包替换文件
  16. 干货!容忍数据缺失的临床超声报告知识图谱乳腺癌诊断
  17. 【博文汇总】Java程序设计语言
  18. 【风马一族_mysql】mysql基本指令
  19. 和王兴并肩战斗十余年,王慧文的精华思考都在这里了
  20. Unity_MegaFiers_Hump

热门文章

  1. Hadoop大数据——MR程序map任务数的规划机制
  2. AngularJS 快速编程入门
  3. python装饰器 property_python中property和setter装饰器用法
  4. c++中类的申明和定义
  5. i7 8700 服务器系统,i7 8700k 云服务器6
  6. sts4创建spring项目_使用STS4新建springboot项目
  7. c语言变凉存储性,C语言数据的表示和存储(IEEE 754标准)
  8. python宇晨_Python 学习第11天 yield 和异常处理
  9. 03 mysql数据查询_MySql学习day03:数据表之间的连接、查询详解
  10. 0402封装ESD二极管选型