从https到http的Jquery ajax调用

时间:2014-12-09 08:28:59

标签: jquery ajax http https

我使用https协议在IIS中部署了我的网站。它适用于http,但ajax jquery请求失败,使用https。 (我只是调用一个返回json数据的http web api)

NetworkError:无法在'XMLHttpRequest'上执行'send':无法加载'http:// .....“

使用https进行部署时,您是否遇到了同样的错误?

请记住,以下代码在使用HTTP进行部署时效果很好,但切换到HTTPS时会转到错误部分

var dataGetter = {
    authenticate: function (username, password) {
        var getTokenUrl = "http://xxx";
        var getTokenParams = { "username": username, "password": password }
        var result = false;        
        $.ajax({
            type: "GET",
            url: getTokenUrl,
            data: getTokenParams,
            contentType: "text/plain",
            dataType: 'json',
            crossDomain: true,
            cache: false,
            success: function (result) {
                  // do something here
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert(errorThrown);
                alert(XMLHttpRequest.responseText);
            },
            async: false
        });

        return result;
    }

1 个答案:

答案 0 :(得分:2)

你做不到。它是浏览器中的基本隐式安全性,它不允许您从https页面调用不安全的链接(http)。

例如:,Google Chrome会给您以下错误:

混合内容:''是通过HTTPS加载的,但请求了一个不安全的资源''。此请求已被阻止;内容必须通过HTTPS提供。