通过https服务调用AJAX不起作用

时间:2012-08-16 10:38:35

标签: javascript jquery node.js

我正在开发一个node.js REST服务,该服务正由web客户端使用javascript。我目前通过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调用失败。

0 个答案:

没有答案