2012-07-19 97 views
0

我對AJAX還比較陌生,並且試圖弄清楚爲什麼我的簡單測試不起作用。從我讀的AJAX不會在一個域下工作,並且其他詞像跨站點和遠程服務器一樣彈出。無論如何,我的問題是,我不知道我的代碼是錯誤的,或者只是我想要做的事情是不可能的。當我點擊按鈕時,我創建了一個簡單的ajax請求來提交數據。這是第一個腳本的代碼。AJAX不能與XAMPP一起使用還是僅僅是不可能

<html> 
    <head> 
    <script type="text/javascript" > 
     function load(thediv, thefile) { 
     if (window.XMLHttpRequest) { 
      xmlhttp = new XMLHttpRequest(); 
     } 
     else { 
      xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); 
     } 
     xmlhttp.onreadystatechange = function() { 
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
      document.getElementById(thediv).innerHTML = xmlhttp.responseText; 
      }  
     } 
     xmlhttp.open('GET', thefile, true); 
     xmlhttp.send(); 
     } 
    </script> 
    </head> 
    <body> 
    <input type="submit" onclick="load('adiv', 'hello.php');"> 
    <div id="adiv"></div> 
    </body> 
</html> 

下面是對文件hello.php

<?php 
    echo 'aaa'; 
?> 

回答

1

AJAX只是在後臺完成的http請求的代碼。但是,是的,有安全限制可以阻止您對任意服務器執行正常的ajax請求。

您的代碼缺失的實際上是設置您要發送請求的URL。你有hello.php作爲你的load()函數的參數,但你實際上從來沒有真正使用過USE它。所以你正在做一個AJAX請求......「無處」。

+0

所以,如果我要上傳到一個實際的網絡服務器來在線查看,我將不得不把我的hello.php文件放在一個不同的web服務器,然後調用它以便AJAX工作? – jason328 2012-07-19 21:54:00

+0

對服務器以外的任何請求而非獲得JavaScript代碼的請求都被視爲跨域。 – 2012-07-19 21:58:02

相關問題