Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 被CORS策略阻止:否';访问控制允许原点';请求的资源上存在标头。带有CrossOrigin(“*”)注释的Java后端_Javascript_Java_Ajax_Spring_Spring Boot - Fatal编程技术网

Javascript 被CORS策略阻止:否';访问控制允许原点';请求的资源上存在标头。带有CrossOrigin(“*”)注释的Java后端

Javascript 被CORS策略阻止:否';访问控制允许原点';请求的资源上存在标头。带有CrossOrigin(“*”)注释的Java后端,javascript,java,ajax,spring,spring-boot,Javascript,Java,Ajax,Spring,Spring Boot,我知道关于这个主题有很多问题,但是在尝试了几个小时的多个修复之后,我一直无法让它工作 @CrossOrigin(origins=“*”,allowedHeaders=“*”) @RestController @请求映射(“/api/bag”) 公共类控制器{ 我的控制器当前接受任何跨源请求 问题似乎在于这个使用多部分/表单数据的特定方法 @PostMapping(consumes=“multipart/formdata”,path={”/image}) public ResponseEntit

我知道关于这个主题有很多问题,但是在尝试了几个小时的多个修复之后,我一直无法让它工作

@CrossOrigin(origins=“*”,allowedHeaders=“*”)
@RestController
@请求映射(“/api/bag”)
公共类控制器{
我的控制器当前接受任何跨源请求

问题似乎在于这个使用多部分/表单数据的特定方法

@PostMapping(consumes=“multipart/formdata”,path={”/image})
public ResponseEntity saveImages(@RequestParam(“文件”)多部分文件[]文件){
最后,我的ajax请求


var blobFile=$(“#serialcodefile”).prop('files')[0];
var formData=new formData();
append(“serialcodefile”,blobFile,“serialCode”);
$.ajax({
url:“http://localhost:8080/api/bag/image",
类型:“POST”,
数据:formData,
标题:{
“内容类型”:“多部分/表单数据”
},
processData:false,
async:true,
成功:一旦成功,
});
我的后端托管在localhost:8080上,前端托管在localhost:5501上

我也不确定是否相关,但一旦我按下表单上的提交按钮,我会发出两个POST请求

  • 至:http://localhost:8080/api/bag/"
  • 至:http://localhost:8080/api/bag/image"

如果您使用Chrome,请尝试禁用CORS-like或在其他浏览器中运行,因为Chrome具有内置的保护功能。

来自jquery文档-
contentType
(默认值:“application/x-www-form-urlencoded;charset=UTF-8”)

以下是指向文档的链接- 在此处搜索ContentType

您是否可以尝试删除
标题
,改为添加
ContentType:false
。 希望这能奏效

$.ajax({
    url: "http://localhost:8080/api/bag/image",
    type: "POST",
    data: formData,
    ContentType: false,
    processData: false,
    async: true,
    success: onSuccess,
});

谢谢你的建议!不幸的是,这并没有解决问题!啊,这些讨厌的安全功能,只需全部禁用,就会让生活变得更轻松…而且不安全!
localhost
因在不同的端口设置中引起问题而臭名昭著。请首先在浏览器的“网络”选项卡中确认您有哪些流量,包括选项在heroku中在线托管网站,这样我就可以离开localhost。不幸的是:(@Ricardo)你有机会尝试一下吗?