2017-02-08 31 views
1

我正在使用AJAX在網站上顯示即將發生的事件。爲此,我請經由的onload JavaScript函數=「showEvents(3);」,請參閱下面的功能:由本地XmlHttpRequest導致的'Cross Origin'錯誤消息

function showEvents (amount) { 

    // are there Events? 
    if (document.getElementById("eventsDiv")) { 

     document.getElementsByClassName("info")[0].innerHTML = 'Loading events...'; 

     // initialize XML Http Request 
     var xmlhttp; 
     if (window.XMLHttpRequest) { 
      xmlhttp = new XMLHttpRequest(); 
     } else { 
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     xmlhttp.onreadystatechange = function() { 
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
       document.getElementById("eventsDiv").innerHTML = xmlhttp.responseText; 
      } 
     } 

     // send request 
     xmlhttp.open("GET", "./events.php?number=" + encodeURIComponent(amount), true); 
     xmlhttp.setRequestHeader("Content-Type", "text/plain;charset=UTF-8"); 
     xmlhttp.send(); 

    } 

} 

文件events.php是在同一目錄中的PHP文件,並將其連接到數據庫獲取即將發生的事件。主要網站的HTML頭包括

<base href="http://www.my-domain.com/"> 

的問題:我得到一個「跨範疇的起源」錯誤信息(在Firefox),防止我的父母index.html文件訪問events.php。據我所知,這個錯誤信息不應該出現,因爲我正在使用來自同一個目錄的資源。

回答

1

好也沒關係,你也可以這樣做......

if($_SERVER['HTTP_ORIGIN'] == "http://your-domain.com") { 
     header('Access-Control-Allow-Origin: http://your-domain.com');