Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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 请求方法';选项';不受支持-Spring启动应用程序_Javascript_Angularjs_Spring_Spring Boot_Cors - Fatal编程技术网

Javascript 请求方法';选项';不受支持-Spring启动应用程序

Javascript 请求方法';选项';不受支持-Spring启动应用程序,javascript,angularjs,spring,spring-boot,cors,Javascript,Angularjs,Spring,Spring Boot,Cors,我在服务器端使用Spring-Boot,在客户端使用Angularjs,我使用过滤器配置Spring-Boot应用程序CORS,它对GET和POST方法有效,但是,当我尝试使用$http模块发送PUT请求时,我在浏览器控制台中得到了以下信息: 注意:url= 选项url (匿名函数)@angular.js:11442sendReq@ angular.js:11235serverRequest@angular.js:10945processQueue@ angular.js:15552(匿名函数)

我在服务器端使用Spring-Boot,在客户端使用Angularjs,我使用过滤器配置Spring-Boot应用程序CORS,它对GETPOST方法有效,但是,当我尝试使用$http模块发送PUT请求时,我在浏览器控制台中得到了以下信息:

注意:url=

选项url (匿名函数)@angular.js:11442sendReq@ angular.js:11235serverRequest@angular.js:10945processQueue@ angular.js:15552(匿名函数)@angular.js:15568Scope.$eval@ angular.js:16820Scope.$digest@angular.js:16636Scope.$apply@ angular.js:16928done@angular.js:11266completeRequest@ angular.js:11464requestLoaded@angular.js:11405 app.html:1 无法加载XMLHttpRequest 网址。回应 对于预飞,HTTP状态代码405 angular.js:11442 XHR无效 加载失败:PUT “网址”

我在春季开机控制台上得到了这个:

package com.datcom.fouras;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Component;

@Component
public class CorsFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        // TODO Auto-generated method stub

    }

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
            throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        response.setHeader("Access-Control-Allow-Origin", "http://localhost");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "Content-Type, x-requested-with, X-Custom-Header");
        chain.doFilter(req, res);

    }

    @Override
    public void destroy() {
        // TODO Auto-generated method stub

    }

}
@RequestMapping(value = "/localbusinessusers", method = RequestMethod.PUT)
    public LocalBusinessUser update(LocalBusinessUser localBusinessUser) {
        log.debug("REST request to update a local business user : {}", localBusinessUser);
        if (localBusinessUser.getId() == null) {
            return save(localBusinessUser);
        } else {
            LocalBusinessUser localBusinessUser2 = localBusinessUserRepository.findOne(localBusinessUser.getId());
            localBusinessUser2 = localBusinessUser;
            return localBusinessUserRepository.saveAndFlush(localBusinessUser2);
        }
    }
2016-03-08 23:19:51.212警告27044---[XNIO-2任务-2] o、 s.web.servlet.PageNotFound:请求方法“选项” 不支持

我的CORS过滤器

package com.datcom.fouras;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Component;

@Component
public class CorsFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        // TODO Auto-generated method stub

    }

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
            throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        response.setHeader("Access-Control-Allow-Origin", "http://localhost");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "Content-Type, x-requested-with, X-Custom-Header");
        chain.doFilter(req, res);

    }

    @Override
    public void destroy() {
        // TODO Auto-generated method stub

    }

}
@RequestMapping(value = "/localbusinessusers", method = RequestMethod.PUT)
    public LocalBusinessUser update(LocalBusinessUser localBusinessUser) {
        log.debug("REST request to update a local business user : {}", localBusinessUser);
        if (localBusinessUser.getId() == null) {
            return save(localBusinessUser);
        } else {
            LocalBusinessUser localBusinessUser2 = localBusinessUserRepository.findOne(localBusinessUser.getId());
            localBusinessUser2 = localBusinessUser;
            return localBusinessUserRepository.saveAndFlush(localBusinessUser2);
        }
    }
MyRestController中的MyREST方法:

package com.datcom.fouras;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Component;

@Component
public class CorsFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        // TODO Auto-generated method stub

    }

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
            throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        response.setHeader("Access-Control-Allow-Origin", "http://localhost");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "Content-Type, x-requested-with, X-Custom-Header");
        chain.doFilter(req, res);

    }

    @Override
    public void destroy() {
        // TODO Auto-generated method stub

    }

}
@RequestMapping(value = "/localbusinessusers", method = RequestMethod.PUT)
    public LocalBusinessUser update(LocalBusinessUser localBusinessUser) {
        log.debug("REST request to update a local business user : {}", localBusinessUser);
        if (localBusinessUser.getId() == null) {
            return save(localBusinessUser);
        } else {
            LocalBusinessUser localBusinessUser2 = localBusinessUserRepository.findOne(localBusinessUser.getId());
            localBusinessUser2 = localBusinessUser;
            return localBusinessUserRepository.saveAndFlush(localBusinessUser2);
        }
    }
最后,我的$http请求:

$http.put('http://localhost:8080/localbusinessusers/'+localBusinessUser)
.成功(功能(数据、状态、标题){
console.log('数据:'+数据);
})
.错误(功能(数据、状态、标题、配置){
console.log('数据:'+数据);
console.log('状态:'+状态);
log('header:'+header);
log('config:'+config);

});如果禁止选项请求,您可以将
DispatcherServlet
配置为通过将其添加到
应用程序来发送所有选项请求。属性

spring.mvc.dispatch-options-request=true
有关选项请求和使用SpringBoot的SpringMVC的更多信息,请参阅


您也可以通过创建一个简单的控制器来为所有选项请求返回NO_内容,从而尝试本文中处理COR和支持选项请求的示例:

我编辑了我的application.properties文件,但仍然收到相同的错误NO_内容选项请求控制器是否可以帮助您,我在application.properties文件中添加了以下行:#ENDPOINTS CORS配置(endpointcors属性)ENDPOINTS.CORS.allow-credentials=false ENDPOINTS.CORS.allowed-headers=Content-Type,x-requested-with,x-Custom-Header ENDPOINTS.CORS.allowed-methods=*ENDPOINTS.CORS.allowed-ories=,endpoints.cors.max-age=3600