Javascript 405(不允许使用方法)删除

Javascript 405(不允许使用方法)删除,javascript,ajax,spring,restful-url,Javascript,Ajax,Spring,Restful Url,问题是这样的:Spring RESTful web服务和客户端。在我得到的服务器上执行删除请求时 ->删除http://localhost:8080/employee/3/logout 405(不允许使用方法) 我已经实现了CORS过滤器,但它仍然不起作用 雇主 @Controller @RequestMapping(value = "/employee") public class EmployeeController { private static final EmployeeRe

问题是这样的:Spring RESTful web服务和客户端。在我得到的服务器上执行删除请求时 ->
删除http://localhost:8080/employee/3/logout 405(不允许使用方法)

我已经实现了CORS过滤器,但它仍然不起作用

雇主

@Controller
@RequestMapping(value = "/employee")
public class EmployeeController {
    private static final EmployeeRepository employeeRepository = new EmployeeRepository();
public EmployeeController(){
}

@RequestMapping(method = RequestMethod.GET, value = "/{employeeId}")
public ResponseEntity<EmployeeDTO> showEmployeeById(@PathVariable int employeeId)
{
    employeeRepository.setEmployeeAsActive(employeeId);
    EmployeeDTO employeeDTO = employeeRepository.getEmployeeDTOForId(employeeId);
    if(employeeDTO != null)
    {
        return new ResponseEntity<EmployeeDTO>(employeeDTO,HttpStatus.OK);
    }
    return new ResponseEntity<EmployeeDTO>(employeeDTO,HttpStatus.NOT_FOUND);
}

@RequestMapping(method = RequestMethod.GET, value = "/{employeeId}/viewTasks")
public ResponseEntity<List<TaskDTO>> showTasksForEmployeeId(@PathVariable int employeeId)
{
    List<TaskDTO> taskDTOs = employeeRepository.getTasksForEmployee(employeeId);
    if(taskDTOs != null)
    {
        return new ResponseEntity<List<TaskDTO>>(taskDTOs, HttpStatus.OK);
    }
    return new ResponseEntity<List<TaskDTO>>(taskDTOs, HttpStatus.NOT_FOUND);
}

@RequestMapping(method = RequestMethod.DELETE, value = "/{employeeId}/logout}")
public ResponseEntity<Void> logoutEmployeeById(@PathVariable int employeeId)
{
    employeeRepository.logoutEmployeeById(employeeId);
    return new ResponseEntity<Void>(HttpStatus.OK);
}
aa和我的CORS过滤器

    @Component
public class CORSFilter implements Filter {
    //Web container will call a filter when the request was made.
    // CORS filter allows Cross-Origin requests-responses to be performed by adding Access-Controll-Allow-Origin in the header"
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
        chain.doFilter(req, res);
    }

    public void init(FilterConfig filterConfig) {}

    public void destroy() {}
}

我也遇到过同样的问题,但仍在努力应对。这个问题存在于SpringSecurity的某个地方,因为我的代码在没有安全性的情况下可以正常工作。但是,当启用spring安全性时,只允许GET,PUT、POST和DELETE不起作用。

对此,我的问题是服务器端的映射。服务器等待的内容和客户端发送的内容有问题。我正在发送名称,而服务器正在等待用户名。所以这是一个愚蠢的错误:)。如果出现随机错误,请务必检查愚蠢的错误

能否发布Spring MVC在启动时生成的输出,尤其是报告控制器映射的部分?感谢不要每次都给控制器@requestMapping,而是给它单独的方法,并从控制器中删除requestMapping。i、 e.对于showEmployeeById方法@RequestMapping(method=RequestMethod.GET,value=“/employee/{employeeId}”),您能告诉我为什么要为每个方法执行@RequestMapping吗?除了GET之外,似乎不允许使用任何方法。当尝试除GET以外的任何方法时,它都会生成405。有什么建议吗?顺便说一句,我已经查看了输出,并且映射了正确的方法。您应该检查您的代码。代码中可能有一些小东西您忘记添加了。请查看我的答案以了解详细信息
    @Component
public class CORSFilter implements Filter {
    //Web container will call a filter when the request was made.
    // CORS filter allows Cross-Origin requests-responses to be performed by adding Access-Controll-Allow-Origin in the header"
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
        chain.doFilter(req, res);
    }

    public void init(FilterConfig filterConfig) {}

    public void destroy() {}
}