簡體   English   中英

Angularjs $http spring rest 控制器 - 404 錯誤

[英]Angularjs $http spring rest controller - 404 error

從 angularjs 到 spring 控制器進行$http調用時出現 404 錯誤,這是代碼:

工廠 :

factory.checkCodeAvail = function(url){
        return $http({
            url: url,
            responseType:"json",
            method: "GET",
            headers: {
                "Content-Type": "application/json"
            }
        });
}

這個工廠方法由控制器調用:

commonFactory.checkCodeAvail('findDepartment')
                    .then(function (success){
                        console.log(success);
                   },function (error){
                       console.log(error);           
});

這是我在瀏覽器控制台中遇到的錯誤:

GET http://localhost:8080/TexERP/findDepartment 404 ()

彈簧控制器:

@RestController
public class AdminController {

    private static final Logger logger = LoggerFactory.getLogger(AdminController.class);

    @RequestMapping(value="/findDepartment", method=RequestMethod.GET)
    public ResponseEntity findDepartment(HttpServletRequest req, HttpServletResponse res){
        ResponseEntity response = null;


        return response;
    }

}

servlet 文件.xml:

 <context:annotation-config />
 <!-- <cache:annotation-driven /> -->

 <context:component-scan base-package="com.erp" />
 <mvc:annotation-driven/>

網頁.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>TexERP</display-name>

  <servlet>
    <servlet-name>erp</servlet-name>
    <servlet-class>
          org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <listener>
       <listener-class>
          org.springframework.web.context.ContextLoaderListener
       </listener-class>
    </listener>

  <context-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>/WEB-INF/erp-servlet.xml</param-value>
    </context-param>



<servlet-mapping>
    <servlet-name>erp</servlet-name>
    <url-pattern>/TexERP/*</url-pattern>
  </servlet-mapping>
</web-app>

Ajax 調用未到達彈簧控制器。

Tomcat 啟動在控制台中顯示這一行:

INFO: Mapped "{[/findDepartment],methods=[GET]}" onto public org.springframework.http.ResponseEntity com.erp.controller.AdminController.findDepartment(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)

將您的 servlet 映射更改為“/”,以便調度程序 servlet 可以讀取所有請求。 在這里,您正在向調度程序 servlet 無法處理的服務器發送請求。 因此,基本上將調度程序 servlet 映射更改為 -

 <servlet-mapping>
 <servlet-name>erp</servlet-name>
 <url-pattern>/</url-pattern>
 </servlet-mapping>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM