2012-10-26 75 views
0

我有兩個JavaScript文件,稱它爲如何判斷哪個Javascript文件在PHP中請求數據?

  • test1.js
  • test2.js

它們用於使用來自PHP文件中請求數據如下:

var xmlhttp= new XMLHttpRequest(); 

xmlhttp.open("GET", "../forum/getSomething.php", true); 
xmlhttp.send(); 

我有一個php文件,用於做一些查詢,並將編碼後的json obj返回到上面的js文件之一,稱之爲

  • getSomething.php

我的問題是,我怎麼能知道哪個JS文件提出請求到PHP?最後,我想聲明的條件,做這樣的事情:

# inside getSomething.php 

# conditional statements 
if request from test1.js 
    do A 
else if request from test2.js 
    do B 

任何提示將是有益的,感謝

+4

發送一些參數該PHP,無論是GET或POST。 – TheZ

+0

也許可以在$ _SERVER全局中使用 – 2012-10-26 01:56:47

回答

1

您可以使用HTTP_REFERERHTTP_X_REQUESTED_WITH,但它可能會非常棘手,我會建議可以識別每個js請求與ID

xmlhttp.open("GET", "../forum/getSomething.php?action=test1", true); 

然後PHP

switch ($_GET['action']) { 
    case "test1" : 
     // Do Test 1 
     break; 

    case "test2" : 
     // Do Test 2 
     break; 
} 
+0

在這種情況下使用HTTP_REFERRER和REQUESTED_WITH是沒有用的。 –

2

這也不是沒有可能具有不同的文件實際上指定這個自己 - 這可以實例可以通過將自定義標頭添加到XMLHttpRequest或通過添加額外的查詢參數來完成。

0

你不能一般性地編寫「來自腳本x」的代碼 - JavaScript引擎不會跟蹤任何特定行代碼c青梅竹馬。

你總是可以通過明確的數據(即查詢字符串)不同於每個腳本即

xmlhttp.open("GET", "../forum/getSomething.php?from=test1", true); 

邊注:考慮使用JQuery.ajax更多的通用代碼...

相關問題