0

JavaScriptを使用してWebクライアントで使用されているnode.js RESTサービスを開発しています。私は現在、HTTP 経由でこのサービスを提供していました。HTTPS 経由で提供するようにサーバーを変更したところ、ajax 呼び出しが機能しなくなりました。

サーバーを http 経由でセットアップすると、このクライアント コードが機能します (「成功!」アラートが表示されます)。

<html>
<head>
    <title>Client</title>
    <script src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
    <script type="text/javascript">
        $(function () {
            $("#go").click(function (e) {
                $.ajax({
                    type: "GET", 
                    url: "http://localhost:3010/users", 
                    data: { username: "test", password: "12345" },
                    success: function(data) {
                        alert("success!");
                   }
                }).error(function (data) {
                    alert("error");
                });
                e.preventDefault();
            });
        });
    </script>
</head>
<body>
    <a id="go" href="#">go!</a>
</body>
</html>

HTTPS を使用するようにサーバーを変更し、クライアント コードで URL を変更すると、次のようになります。

$.ajax({
   type: "GET", 
   url: "http://localhost:3010/users",
   ...

CURL を使用して https 呼び出しでサーバーをテストすると、完全に機能します。

curl --insecure "https://localhot:3010/users?username=test&password=12345"

https サービスを使用しているときに ajax 呼び出しが失敗する理由がわかりません。

4

0 に答える 0