当前位置: 首页 > 知识库问答 >
问题:

即使在用@CrossOrigin(origins="* ")注释控制器之后,跨原点请求仍然被阻止?

长孙阳嘉
2023-03-14

我有一个Spring靴控制器,如下所示

@CrossOrigin(origins="*")
public class FormController {
      @PostMapping(path="/basicForm")
 public String postResponseController(
              @RequestBody FormDomain loginForm) {
        System.err.println("basic form method called");
         return "file transfer completed successfully";
     }
}

我用@CrossOrigin(origins=“*”)注释了控制器以启用CORS。这是我的表单域类

public class FormDomain {
     private MultipartFile fileInput;

    public MultipartFile getFileInput() {
        return fileInput;
    }

    public void setFileInput(MultipartFile fileInput) {
        this.fileInput = fileInput;
    }
    }

和调用控制器方法的角度脚本

 onClickSubmit(data) {
        this.http.post("http://localhost:8080/basicForm", data).subscribe( (ob)=>(console.log(ob)));
      }

尽管我已经注释了控制器以启用CORS,但我在浏览器控制台中得到了以下错误:

Access to XMLHttpRequest at 'http://localhost:8080/basicForm' from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

如何解决这个问题?

共有1个答案

袁翔
2023-03-14

您必须在< code>FormController中添加< code>@RestController

@Controller@Component类的特殊化,允许通过类路径扫描自动检测实现类。而@RestController@Controller的特殊化,它消除了对@Adapsebody的需要。您可以参考@Controller, RestController

 类似资料:
  • 问题内容: 因此,我有了这个Go http处理程序,该处理程序将一些POST内容存储到数据存储中,并检索其他一些信息作为响应。在后端,我使用: 在我的firefox OS应用程序中,我使用: 传入的部分都一直如此。但是,我的回复被阻止了。给我以下信息: 我尝试了许多其他操作,但是无法从服务器获得响应。但是,当我将Go POST方法更改为GET并通过浏览器访问该页面时,我得到的数据太糟糕了。我无法真

  • 我也在应用程序根目录中使用。htaccess文件。(waleedahmad.kd.io/node)。

  • 一个星期以来,我一直在解决这个问题;我连接到我的服务器API并检索cookie。 然后我做了一个GET来检索JSON Cookie会话,但是我在跨源代码方面遇到了一个问题。 在API的一侧是可以的,因为我得到了一个良好的状态200。 答复如下: ============================================================= 响应:访问控制允许信任。。。真

  • 我正在尝试向一个创建自己的wifi热点并且只允许http请求的设备发出http请求。对于Android8和更低的http请求是成功的,但是对于Android9它们是失败的。虽然谷歌Pixel2使用的是Android9,但它似乎能发挥作用。 network_security_config.xml

  • 所以我已经实现了一个Spring引导JAVA应用程序作为服务器和角作为前端。所以实际上,当我在本地运行这些时,一切都很好。 但是当我为两者构建Docker映像并尝试将它们作为容器进行测试时,我面临着CORS错误。 由于我使用JWT令牌作为安全性,我已经禁用了crsf和默认的Spring Security令牌。所以在这里您可以看到CORS的JAVA配置; 这就是nginx。形态 即使我尝试在同一网络