2016-12-19 112 views
-1

這是我的代碼:http://codepen.io/anon/pen/MbLEEE
HTTP請求不起作用(JavaScript)的

xmlhttp.open("GET", "anyURL", true); 
xmlhttp.send(); 

我不知道如何來完成我的HTTP請求。
當我輸入一個隨機URL我總是得到相同的ResponseCode。
我在做什麼錯了?

+1

除非該域已明確配置爲允許訪問您不能從不同的域讀取URL。查看瀏覽器錯誤控制檯。 –

+0

請求的資源上沒有「Access-Control-Allow-Origin」標頭。因此不允許Origin'http:// localhost'訪問。響應有HTTP狀態代碼404 –

+0

這意味着,您(或您的後端傢伙)應該以這種方式將服務器配置爲允許進行從本地主機的IP請求。 – Julsy

回答

1

您需要使用服務器執行此操作,如果您想在沒有服務器的情況下執行此操作,那麼您需要啓用ActiveX控件的Internet Explorer。您需要複製此腳本並將其粘貼到標記之間並將其另存爲html文件。使用Internet Explorer打開文件。

window.onload = addElement; 
 

 

 
function addElement() { 
 
\t // create a new div element 
 
\t // and give it popup content 
 
\t var newDiv = document.createElement("div"); 
 
\t var texts; 
 
\t 
 
\t xmlhttp = new XMLHttpRequest(); 
 
\t 
 
\t xmlhttp.onreadystatechange = 
 
\t function() 
 
\t { 
 
\t \t 
 
\t \t if (xmlhttp.readyState == 4 && xmlhttp.status === 200) 
 
\t \t { 
 
\t \t \t texts = xmlhttp.responseText; 
 
\t \t \t 
 
\t \t } 
 
\t \t else 
 
\t \t { 
 
\t \t \t texts = 'Waiting for response...'; 
 
\t \t } 
 
\t \t newDiv.innerHTML += '<div id="popup" style=" position: fixed;top: 15%;width: 800px;height: 200px;margin: auto;z-index: 99999;display: block;left:25%;background-color: #fff; border: 1px solid #ddd; border-radius: 5px; box-shadow: 0 1px 6px 4px #000; overflow: hidden; padding: 10px;"><div class="popup_body" style=" height: 160px;">' + texts + '</div><button style="padding: 10px;" class="close_button"onClick="closePopup()">Sluiten</button><button style="padding: 10px;" class="close_button"onClick="tostoring()">Meer Informatie</button></div>'; 
 
\t } 
 
\t xmlhttp.open("GET", "https://soundcloud.com/jbadminton/lol", true); 
 
\t xmlhttp.send(); 
 
\t 
 
\t 
 

 
\t // Add The Background cover 
 
\t var BG = document.createElement("div"); 
 
\t //BG.style.background-color = 'black'; 
 
\t BG.style.width = '100%'; 
 
\t BG.style.height = '100%'; 
 
\t BG.style.background = 'black'; 
 
\t BG.style.position = 'fixed'; 
 
\t BG.style.top = '0'; 
 
\t BG.style.left = '0'; 
 
\t BG.style.opacity = '0.7'; 
 
\t BG.style.zIndex = '99900'; 
 
\t BG.style.display = 'none'; 
 
\t BG.setAttribute("id", "bgcover"); 
 
    
 
\t // add the newly created elements and its content into the DOM 
 
\t document.body.appendChild(BG); 
 
\t document.body.insertBefore(newDiv, BG); 
 
\t // open popup onload 
 
\t 
 
\t 
 
\t 
 
\t 
 
\t 
 
\t 
 
\t 
 
\t openPopup(); 
 
} 
 

 
function openPopup() { 
 
\t var el = document.getElementById('popup'); 
 
\t var BG = document.getElementById('bgcover'); 
 
\t el.style.display = 'block'; 
 
\t BG.style.display = 'block'; 
 
} 
 

 
function tostoring() { 
 
\t window.location.href = 'http://localhost/Sms%20management%20systeem/testing/storing.php'; 
 
} 
 

 
function closePopup() { 
 
\t var el = document.getElementById('popup'); 
 
\t var BG = document.getElementById('bgcover'); 
 
\t el.style.display = 'none'; 
 
\t BG.style.display = 'none'; 
 
}

0

的對象,你應該用的是XMLHttpRequest。例如:

function getURL(url, callback) { 

    // it makes one XMLHttpRequest object, 
    //which will be used for all the AJAX queries. 

    var xhr = new XMLHttpRequest(); 
    xhr.open("GET", url, true); 
    xhr.addEventListener('load', function(e) { 
    if ((e.target.readyState === 4) && (e.target.status === 200) || (e.target.status < 299)) { 
    callback(e.target.responseText); 
     } 
    }); 

    xhr.send(null); // send requests 
} 

另外,儘量在你的代碼debugger;工作,看看做什麼一切都在你的代碼,以及與console.log(),如果它是你更容易。在DevTools控制檯中打開您的網絡選項卡,並會看到您的網絡查詢。