Spring REST调用提供302重定向

时间:2016-02-15 21:51:52

标签: angularjs spring rest spring-mvc

我使用angularjs对Spring管理的tomcat后端进行REST调用。但我的服务器代码似乎永远不会接到电话,浏览器会得到一个302" index.html"附在网址的末尾。例如,如果我的初始调用是" localhost:8080 / api / search / someString",浏览器会收到302重定向到" localhost:8080 / api / search / someString / index.html&#34 ;然后重定向到" localhost:8080 / api / search / someString / index.html / index.html"。

这种情况一直持续到#34;重定向太多"发生错误,它失败了。任何人的想法?

这是我的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 call:

search: function (searchStr) {
        return $http.get("/api/search/"+searchStr);
    }

休息控制器:

@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 :(得分:0)

有时你可以犯下最愚蠢的错误!我将RequestMapping注释从“/ api / search”更改为“/ search”,它可以正常工作。

感谢。