gpt4 book ai didi

java - 如何使用 AngularJS 使用 war 名称发送请求?

转载 作者:行者123 更新时间:2023-12-01 12:08:11 25 4
gpt4 key购买 nike

我想发送请求:

var response = $http({
method: "post",
url: "/Test/hello",
data: {
action:"action",
}
});

/Test/ 在哪里 - 我的 war 名称。但如果我重命名 war ,就会出错。如何设置请求使用 war 名称?

注意。 web.xml

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

Spring Controller

@Controller
public class ProjectController {

@RequestMapping(method = RequestMethod.POST, value = "/hello")
@ResponseBody
public String hello(@RequestBody JSONObject request) {
return "hello@;
}

最佳答案

这高度依赖于您的部署过程。

您指定的 Servlet 映射添加在已部署应用程序的路径之后。它没有指定应用程序服务器上的确切路径。

如果您在某个指定名称(通常使用 war 名称)上部署应用程序,就会出现这种情况。但你可以自己指定它,我通常在服务器上部署单个应用程序以确保其打开/

您的 Angular 应用程序由特定 URL 上的资源 servlet 调度程序作为普通静态 Assets 提供服务。

如果您坚持部署到各种名称,我建议使用相对路径。 Angular SPA 应用程序在特定的 url 上运行,因此它在其生命周期内不会更改。

因此,如果您将应用程序部署在/Test 并且 hello REST Controller 位于/Test/hello 上,则可以仅使用 hello 作为 url

var response = $http({
method: "post",
url: "hello",
data: {
action:"action",
}
});

如果您仍然希望拥有绝对 URL,则可以在部署期间修改某些已定义的常量。为此,我建议您在一些单独的配置中为基本 url 定义常量。

angular('YourModule')
.constant('BASE_URL', '/Test');

关于java - 如何使用 AngularJS 使用 war 名称发送请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27438815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com