php跨域上传文件,laravel文件上传接口跨域问题

laravel文件上传接口跨域问题

laravel上传文件 直接post就可以了 但是前端加进度条就会显示跨域!

经过排查vue pc的页面上传图片会有两个请求一个post请求一个options请求! post请求正常 但是options请求就出问题了~ 下边是解决方案:#我的跨域代码都在中间件中

header('Access-Control-Allow-Origin: *');

header("Access-Control-Allow-Credentials: true");

header("Access-Control-Allow-Methods: *");

header('Access-Control-Allow-Headers: Origin, Access-Control-Request-Headers, SERVER_NAME, Access-Control-Allow-Headers, cache-control, token, X-Requested-With, Content-Type, Accept, Connection, User-Agent, Cookie, X-XSRF-TOKEN');

if($request->getMethod() !== 'OPTIONS') {

header("Access-Control-Expose-Headers: *");

}

其次把上传文件的路由改为any 什么请求都可以! 因为两个请求都会走这个路由 如果只用post options请求就请求不同~

ok 这次的laravel文件上传的跨域问题就解决了~

laravel文件上传接口跨域问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中处理文件上传时,跨域问题可以通过以下步骤来解决: 1. 在服务器端配置CORS:在处理文件上传的后端代码中,添加CORS配置以允许跨域请求。可以使用Spring Boot的`@CrossOrigin`注解或自定义的CORS配置类来实现。 使用`@CrossOrigin`注解的示例代码如下: ```java @CrossOrigin(origins = "http://example.com") @RestController public class FileUploadController { @PostMapping("/upload") public ResponseEntity<?> uploadFile(@RequestParam("file") MultipartFile file) { // 文件上传逻辑 return ResponseEntity.ok().build(); } } ``` 以上示例中,`@CrossOrigin(origins = "http://example.com")`指定了允许跨域请求的来源为"http://example.com"。你可以根据需要指定允许的来源。 2. 在前端配置CORS:在前端代码中,确保在发送文件上传请求时,设置合适的`Access-Control-Allow-Origin`请求头。 例如,在使用JavaScript进行文件上传时,可以使用`FormData`对象,并在发送请求前设置`xhr.setRequestHeader`来指定请求头: ```javascript const formData = new FormData(); formData.append('file', file); const xhr = new XMLHttpRequest(); xhr.open('POST', 'http://example.com/upload', true); xhr.setRequestHeader('Access-Control-Allow-Origin', 'http://example.com'); xhr.send(formData); ``` 以上示例中,将请求头中的`Access-Control-Allow-Origin`设置为允许跨域请求的来源,即"http://example.com"。你需要根据实际情况设置合适的允许来源。 通过在服务器端和客户端同时配置CORS,可以解决Java文件上传时的跨域问题。确保在服务器端和客户端的配置中指定允许跨域的来源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值