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

Spring Boot中禁止选项请求

法子昂
2023-03-14

我阅读了很多关于这个问题的线程和解决方案(包括这个SO解决方案),但在发送预飞行请求时仍然有403错误。

我使用的是Spring Data Rest,只要没有发送选项,我就可以很好地处理我的存储库。我还没有使用Spring Security,但我计划很快配置它。以下是我当前的配置:

@Configuration
public class GlobalRepositoryRestConfigurer extends RepositoryRestConfigurerAdapter {

    @Override
    public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
        config.getCorsRegistry().addMapping("/**").allowedOrigins("*").allowedHeaders(
                "*").exposedHeaders("Location").allowedMethods("GET", "PUT", "POST", "DELETE",
                                                               "OPTIONS");
    }

    @Bean(name = DispatcherServletAutoConfiguration.DEFAULT_DISPATCHER_SERVLET_BEAN_NAME)
    public DispatcherServlet dispatcherServlet() {
        DispatcherServlet dispatcher = new DispatcherServlet();
        dispatcher.setDispatchOptionsRequest(true);
        return dispatcher;
    }
}
Accept           text/html,application/xhtml+xm…plication/xml;q=0.9,*/*;q=0.8
Accept-Encoding  gzip, deflate
Accept-Language  fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3
Access-Control-Request-Headers   content-type
Access-Control-Request-Method    POST
Connection       keep-alive
Host             localhost:8080
Origin           http://localhost:4000
Referer          http://localhost:4000/
User-Agent       Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/64.0
Allow            GET, HEAD, POST, PUT, DELETE, OPTIONS, PATCH
Content-Length   20
Date             Sun, 30 Dec 2018 08:49:00 GMT

共有1个答案

郭志
2023-03-14

我仍然不知道为什么我的配置不能用于OPTIONS请求,但我设法使它与WebMVCConfigurer一起工作。下面的配置类解决了我的问题:

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
                .allowedOrigins("*")
                .allowedHeaders("*")
                .exposedHeaders("Location", "Access-Control-Allow-Origin");
    }
}
 类似资料:
  • 问题内容: 我在HTML页面上有一个div,每当我按下鼠标并移动它时,它会显示“不能放下”光标,就像它选择了某些内容一样。有没有办法禁用选择?我尝试了CSS用户选择,但没有成功。 问题答案: 的专有版本将在大多数现代浏览器中运行: 对于IE <10和Opera,您将需要使用希望不可选择的元素的属性。您可以使用HTML中的属性进行设置: 遗憾的是,该属性没有被继承,这意味着您必须在内每个元素的开始标

  • 问题内容: 编辑2 我仍然需要帮助,因为错误仍然没有得到解决。下面,我添加了指向.ajaxError()抛出的屏幕截图的链接: http://i.imgur.com/RkcgNtG.jpg 另一个想法是服务器设置。suphp或mpm_itk模块是否有可能是导致此错误的原因? 编辑 我已经弄明白了。我的Ajax- Call应该从输入和文本区域更新一些数据。我进行了更多测试,发现403仅在我的文本区域

  • 共享Api实现类,添加preauthorize-admin,查看所有用户 这是我的JUnit测试,我发送get请求并返回403错误。

  • 问题内容: 我编写了一个测试UsersController的单元测试。UsersControllerTest.findUser工作正常,但不能正常运行UsersControllerTest.insertGetModifyDelete。 在测试日志中,我可以看到POST请求与UsersController的任何方法都不匹配,但是我不明白为什么。您能帮我这个吗? 这是我其余的Java类: 我有2种方法

  • 第一次投递到stackoverflow。 我只是试图使用jQuery从json url获取数据。第一个问题是跨源请求块,即使库应该停止这个问题,像ajax跨源js(抱歉不提供这个链接,我太新了,在这里有超过2个链接),我仍然没有运气,一样交叉原点错误。 所以我搬到了JSONP。 (我也尝试过JSONP请求的AJAX语法) 现在我可以在网络选项卡中看到数据正在返回,但状态是403禁止。chrome网

  • 对localhost的Ajax请求返回403错误。然而,当我更改controller requestMethod以获取并在浏览器上打开请求“url”时,它会显示从服务器返回的json数据。我希望使用这些数据填充一个下拉列表。请帮帮我。我正在使用spring security 4.0和spring MVC框架。CSRF未禁用。此外,该url在Spring得到保护。 我在这里查看了相关问题,但没有找到