我正在使用angularjs向由Spring管理的tomcat后端发出REST调用。但是我的服务器代码似乎从未接收到该调用,浏览器会得到一个带有“index.html”附加在URL末尾的302。例如,如果我的初始调用是“localhost:8080/api/search/someString”,浏览器将接收到302重定向到“localhost:8080/api/search/someString/index.html”,然后重定向到“localhost:8080/api/search/someString/index.html/index.html”。
这种情况会一直发生,直到出现“太多重定向”错误并失败。有什么想法吗?
以下是我的web.xml:
这种情况会一直发生,直到出现“太多重定向”错误并失败。有什么想法吗?
以下是我的web.xml:
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
<url-pattern>/api/*</url-pattern>
<url-pattern>/page/*</url-pattern>
</servlet-mapping>
Angular调用:
search: function (searchStr) {
return $http.get("/api/search/"+searchStr);
}
Rest控制器:
@RestController
public class SearchResource {
@Autowired
private ItemService itemService;
@RequestMapping(value = "/api/search/{searchStr}", method = RequestMethod.GET)
public List<Item> getItemsBasedOnSearchString(@PathVariable String searchStr) {
return itemService.getAllItems();
}
public ItemService getItemService() {
return itemService;
}
public void setItemService(ItemService itemService) {
this.itemService = itemService;
}
}