我有一個網站,調用AJAX。它在我的辦公室工作(在許多人的計算機上,在不同的系統和瀏覽器上,不僅僅是我的辦公室),它是在一臺外部計算機上工作的(我的一位朋友,他住在辦公室大約10分鐘) 。但是,AJAX在其他所有外部計算機上都失敗了。如果我在家裏嘗試,或者我的另一個朋友在家裏嘗試,它不起作用(我們住在離辦公室很遠的地方)。這是一個非常簡單的使用jQuery的AJAX調用。AJAX基於地理位置工作?
$(destination).load(url);
我使用Firebug控制檯檢查了一下,發現這個
AJAX調用被列爲
GET (url) 200 OK
時它的工作原理,當它不工作,只是當它不」 t工作,它是紅色的,並且在OK和152ms之間有一個'X'圖標(或不管多長時間)。
PARAMS標籤 - 是同它是否有效與否
頭選項卡 - 當它的工作原理,在「請求頭」部分顯示:
X-Requested-With XMLHttpRequest
Cookie PHPSESSID=*******
但是當它不工作,這些行不存在,而是有一個'Origin'(只有主站點URL)的行。
響應/ HTML選項卡 - 當它不起作用時爲空。正如我所說的,我已經測試過瀏覽器,電腦,Mac,Pc等,它們都可以在辦公室使用,但不是在任何地方。任何幫助是極大的讚賞。
UPDATE
我創建了一個測試頁面分離出的代碼。測試頁面簡要工作,然後停止工作(困惑我)。所以我現在認爲我的代碼有錯誤,但是當錯誤發生時,瀏覽器忽略了錯誤(原始文件在辦公室仍然有效,而測試不起作用)。
測試頁應該有'工作!'點擊「測試」鏈接時彈出。這裏是代碼:
<?php
$call = $_GET['call'];
echo $call;
if($call == 'yes') //check for call
{
echo 'Worked!';
exit();
}
?>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
function callAjax(call){
var dest = "#result";
var url = "http://www.test/page/url.php";
var query = "?call="+call; //turn call into a query string
url = url+query; //Add querystring to url
$(dest).load(url); //make the call
}
</script>
<!DOCTYPE html><html><head><title>Test</title></head>
<body>
<a href="javascript:callAjax('yes')">test</a>
<div id="result"></div>
</body>
</html>
什麼是您要加載的URL? (如果它不是祕密) – florian
@florian我正在加載的頁面可以正常工作,即使是在家中(如果我直接去他們而不是進行AJAX調用,他們也會工作)。這是一些數據庫信息的簡單列表。我確信這個問題與請求頭中沒有XMLHttpRequest有關,但我不知道爲什麼會出現這種情況。 – lcHatter
'url'看起來像'http:// www.example.com/page','/ page'還是'page'? – icktoofay