[英]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.