XMLHttpRequest vs curl 不起作用



今天我正在尝试在javascript, java和c#中制作一点XHR,但它不起作用....我不知道为什么

代码

var xhr = new XMLHttpRequest();
function init(){
    xhr.open("POST","http://www.opsu.gob.ve/portal/controles/ctrl_portal_cpnev_csni.php",false);
xhr.setRequestHeader("Cookie","SERVERID=webserver4");
xhr.setRequestHeader("Origin","http://www.opsu.gob.ve");
xhr.setRequestHeader("Accept-Encoding","gzip, deflate");
xhr.setRequestHeader("Accept-Language","es-419,es;q=0.8");
xhr.setRequestHeader("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36");
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.setRequestHeader("Accept","*/*");
xhr.setRequestHeader("Cache-Control","max-age=0");
xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");
xhr.setRequestHeader("Connection","keep-alive");
xhr.setRequestHeader("Referer","http://www.opsu.gob.ve/portal/principal.html?ir=cpnev_csni&tp=1&ci=24522469");
xhr.send("ci=24522469&tipo=1");
console.log(xhr.responseText);
}
init();

它就呆在那里,不要做任何事情....(我尝试async true和同样的事情发生)

but in curl…它是

这是curl

中的一行
curl "http://www.opsu.gob.ve/portal/controles/ctrl_portal_cpnev_csni.php" -H "Cookie: SERVERID=webserver4" -H "Origin: http://www.opsu.gob.ve" -H "Accept-Encoding: gzip, deflate" -H "Accept-Language: es-419,es;q=0.8" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36" -H "Content-Type: application/x-www-form-urlencoded" -H "Accept: */*" -H "Cache-Control: max-age=0" -H "X-Requested-With: XMLHttpRequest" -H "Connection: keep-alive" -H "Referer: http://www.opsu.gob.ve/portal/principal.html?ir=cpnev_csni&tp=1&ci=24522469" --data "ci=24522469&tipo=1" --compressed

它应该返回

5334143; -; 2010; -;里卡多;-;亚历杭德罗;-;MARCANO; -; QUINTANA; -; 24522469; -;

但是不

我的代码有什么问题?

你知道用c#、Java或javascript怎么做吗?

为什么我不用curl?我试着让所有的用户都注册到这里它超过了500万使用curl是很复杂的....

XMLHTTP不能同步,将open的最后一个参数改为true。

因此,当您的console.log被执行时,请求不会这样做,为了克服这个问题,您需要使用onreadystatechange设置回调,例如:

 xhr.onreadystatechange = function() {
            if (xhr.readyState == 4 && xhr.status == 200) {
                console.log(xhr.responseText)
            }
        }
http://www.w3schools.com/ajax/ajax_xmlhttprequest_onreadystatechange.asp

最新更新