2016-08-27 44 views
0

我想通过点击下载按钮使用api来抓取使用javascript的网页。但我没有收到任何responseText在这个和相同的API使用curl工作。XMLHttpRequest尝试抓取时无法正常工作

download.addEventListener('click',function(){ 

    document.getElementById('check').innerHTML = url; 

    var yql = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from html where url="' + url + '"') + '&format=json&callback=?'; 
    document.getElementById('check').innerHTML = yql; 
    var request = new XMLHttpRequest(); 


    request.onreadystatechange = function(){ 
     document.getElementById('check').innerHTML= request.readyState; 

     if(request.readyState ===XMLHttpRequest.DONE) { 
     document.getElementById('check').innerHTML= request.responseText; 
     } 
    }; 

    request.open("GET", yql, true); 

    request.send; 

},false); 
+1

不应该有'request.send()'? – Seb

回答

-1

单从YPL删除回调,然后此代码工作正常:

download.addEventListener('click',function(){ 

    document.getElementById('check').innerHTML = url; 


    var yql = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from html where url="' + url + '"') + '&format=jsonp'; 
    document.getElementById('check').innerHTML = yql; 


    var request = new XMLHttpRequest(); 
    request.open("GET", yql, true); 
    request.send(); 

    request.onreadystatechange = function(){ 
     document.getElementById('check').innerHTML= request.readyState + request.status; 
     if(request.readyState ===4) { 
      document.getElementById('check').innerHTML= request.responseText; 
     } 
    }; 


},false); 
相关问题