4

我有一个简单的 MVC Web 应用程序,其中 javascript 代码将 ajax 请求发送到控制器,控制器发回响应。

我在 2 年前构建了该应用程序,过去一切正常。现在我尝试在本地再次运行该应用程序并遇到以下问题:每当从前端向控制器发送 Ajax 请求(在本地主机上运行)时,本地主机拒绝连接并且我在(chrome 的)javascript 中收到 ERR_CONNECTION_REFUSED 消息-安慰。(在 Safari 的 javascript-console 中,我收到以下错误消息:“加载资源失败:无法连接到服务器。”)

我正在使用 NetBeans 11.2 运行该应用程序。我的 NetBeans IDE 使用 GlassFish 作为服务器:

在此处输入图像描述

我从 NetBeans IDE 中删除了 Glassfish 服务器,在我的主目录中删除了它的文件夹,然后在我的 NetBeans IDE 中再次添加了 Glassfish 服务器(这还需要下载最新版本的 Glassfish 服务器)。

尽管如此,服务器仍拒绝接受来自前端的任何请求。

我还尝试使用 Payara Server(版本 5.193)。那也没有什么不同。

顺便说一下,前端本身乍一看还不错。也就是说,访问http://localhost:8080/myapp会加载应用程序的前端。但是,应用程序的任何动态功能都不起作用,因为服务器拒绝接受来自前端的任何 Ajax 请求(并通过鼠标单击启动)。

我怎样才能解决这个问题?


我想我找到了问题的原因:

在我的 javascript 文件中,我有以下代码行:

var url = "http://localhost:8080/myapp/Controller";

变量“url”被传递给发送到 localhost 的所有 AJAX 请求。但这里是疯狂的事情:AJAX 请求不是发送到“ http://localhost:8080/myapp/Controller ”,而是发送到“ http://localhost:8081/myapp/Controller ”!!!!!!

在此处输入图像描述

这到底是怎么回事?!

4

2 回答 2

2

你之前是不是用了8081端口,然后把变量“url”改成了新的8080端口?在这种情况下,可能变量仍然设置为缓存中的旧值。重新启动计算机,看看这是否能解决问题。

于 2020-02-17T09:04:49.973 回答
1

如果该属性的http-listener值为localhost,它将拒绝连接外部连接。

您可以使用命令验证使用它的值

asadmin> get server-config.network-config.network-listeners.network-listener.http-listener-1.*

应返回类似于以下内容的信息:

server.http-service.http-listener.http-listener-1.acceptor-threads = 1
server.http-service.http-listener.http-listener-1.address = 0.0.0.0
server.http-service.http-listener.http-listener-1.blocking-enabled = false
server.http-service.http-listener.http-listener-1.default-virtual-server = server
server.http-service.http-listener.http-listener-1.enabled = true
server.http-service.http-listener.http-listener-1.external-port =
server.http-service.http-listener.http-listener-1.family = inet
server.http-service.http-listener.http-listener-1.id = http-listener-1
server.http-service.http-listener.http-listener-1.port = 8080
server.http-service.http-listener.http-listener-1.redirect-port =
server.http-service.http-listener.http-listener-1.security-enabled = false
server.http-service.http-listener.http-listener-1.server-name =
server.http-service.http-listener.http-listener-1.xpowered-by = true

使用 set 子命令修改属性。

此示例将addresshttp-listener-1 的属性设置为0.0.0.0

asadmin> set server.http-service.http-listener.http-listener-1.address = 0.0.0.0

参考:

https://docs.oracle.com/cd/E19798-01/821-1751/ablaq/index.html

于 2020-02-15T19:23:10.413 回答