Spring REST调用返回302重定向

3
我正在使用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:
<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;
}
}
1个回答

0
有时候我们会犯很蠢的错误!我将RequestMapping注解从“/api/search”改成了“/search”,现在它可以工作了。
谢谢。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接