JavaScriptコードがajaxリクエストをコントローラーに送信し、コントローラーが応答を返す単純なMVC Webアプリケーションがあります。
私は2年前にアプリを作成しましたが、以前はすべて正常に機能していました。今、私はローカルでアプリを再度実行しようとし、次の問題に遭遇しました:Ajaxリクエストがフロントエンドからコントローラー(localhostで実行中)に送信されると、localhostは接続を拒否し、(Chrome)のJavaScriptでERR_CONNECTION_REFUSEDメッセージを受け取ります-コンソール。 (Safariのjavascript-consoleで、「リソースの読み込みに失敗しました:サーバーに接続できませんでした。」というエラーメッセージが表示されます。)
NetBeans 11.2を使用してアプリを実行しています。私のNetBeans IDEはサーバーとしてGlassFishを使用しています:
GlassfishサーバーをNetBeans IDEから削除し、ホームディレクトリ内のフォルダを削除してから、GlassfishサーバーをNetBeansに再度追加しましたIDE(Glassfishサーバーの最新バージョンもダウンロードする必要がありました) 。
それでも、サーバーはフロントエンドからの要求を受け入れることを拒否します。
Payara Server(バージョン5.193)も試してみました。それでも違いはありませんでした。
ちなみにフロントエンド自体は一見すると見栄えが良いです。つまり、 http:// localhost:8080/myapp にアクセスすると、アプリのフロントエンドが読み込まれます。ただし、サーバーはフロントエンドからの(マウスクリックで開始された)Ajaxリクエストの受け入れを拒否するため、アプリの動的機能は機能しません。
どうすれば修正できますか?
私は問題の理由を見つけたと思います:
私のjavascript-fileには、次のコード行があります。
var url = "http://localhost:8080/myapp/Controller";
変数 "url"は、すべてのAJAXリクエストがlocalhostに送信されます。ただし、クレイジーなのはAJAXリクエストが "- http:// localhost:8080/myapp/Controller "から" http:// localhost:8081/myapp/Controller "!!!!!
ここで何が起こっているのですか?
属性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サブコマンドを使用して属性を変更します。
この例では、http-listener-1のaddress
属性を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