Post 带有XMLHttpRequest的Https请求

Post 带有XMLHttpRequest的Https请求,post,https,get,xmlhttprequest,Post,Https,Get,Xmlhttprequest,我可以使用XMLHttpRequest执行Http请求(POST/GET) 我在问如何使用URL进行请求,如“https://www.gmail.com" 我正在尝试类似的操作,但状态代码为0 var http = new XMLHttpRequest(); var url = "https://www.gmail.com"; http.open("GET", url); http.onreadystatechange = function() {//Call a fu

我可以使用XMLHttpRequest执行Http请求(POST/GET)

我在问如何使用URL进行请求,如“https://www.gmail.com" 我正在尝试类似的操作,但状态代码为0

var http = new XMLHttpRequest();
    var url = "https://www.gmail.com";

    http.open("GET", url);
    http.onreadystatechange = function() {//Call a function when the state changes.
            if(http.readyState == 4 && http.status == 200) {
                    //alert(http.responseText);
                print("ok")
            }else{
                print("cannot connect")
                print("code:" + http.status)
                print(http.responseText)
            }
    }
    http.send(null);
我总是得到“无法连接”“代码”0和无响应


有什么想法吗?

这将失败,原因有两个:

1) “url”https://www.gmail.com“实际上试图将您重定向到”https://mail.google.com/mail/,这将尝试将您重定向到登录页面。此重定向未被列为错误


2) 然而,更重要的是,不能对不同的域进行XMLHttpRequests,除非该域支持CORS(http://www.html5rocks.com/en/tutorials/cors/). GMail不支持CORS,因此此请求将不起作用。

基本上,我只对一个网站进行请求。。gmail.com就是一个例子。。还是不可能吗?是的,由于浏览器的同源策略,您不能使用标准XHR从一个域向另一个域发出请求。请注意,您可以使用其他机制,如JSON-P或CORS,但这些技术要求服务器以特定格式输出响应。