Ich habe zwei Javascript-Dateien, nenne es

  • test1.js
  • test2.js

Sie werden verwendet, um Daten aus der PHP-Datei wie folgt anzufordern:

var xmlhttp= new XMLHttpRequest();

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

Und ich habe eine PHP-Datei, die verwendet wird, um einige Abfragen durchzuführen und das codierte JSON-Objekt an eine der oben genannten JS-Dateien zurückzugeben. Rufen Sie es auf

  • getSomething.php

Meine frage ist, wie kann ich feststellen, welche datei js die anfrage an den php richtet? Letztendlich möchte ich eine Bedingung angeben und so etwas tun:

# inside getSomething.php

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

Irgendwelche Tipps wären hilfreich, danke

0
overloading 26 Okt. 2012 im 05:54

3 Antworten

Beste Antwort

Sie können HTTP_REFERER mit HTTP_X_REQUESTED_WITH verwenden, aber es kann schwierig sein. Ich rate Ihnen, jede js -Anforderung mit einer ID zu identifizieren

Beispiel

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

Dann PHP

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

    case "test2" :
        // Do Test 2
        break;
}
1
Baba 26 Okt. 2012 im 01:56

Dies ist nicht möglich, ohne dass die verschiedenen Dateien dies selbst angeben. Dies kann beispielsweise durch Hinzufügen von benutzerdefinierten Headern zu XMLHttpRequest oder durch Hinzufügen zusätzlicher Abfrageparameter erfolgen.

2
Sean Kinsey 26 Okt. 2012 im 01:56

Sie können nicht generisch Code schreiben, der besagt, dass "dies aus Skript x stammt". JavaScript-Engines verfolgen nicht, woher eine bestimmte Codezeile stammt.

Sie können explizite Daten (d. H. In Abfragezeichenfolgen) immer anders als in jedem Skript übergeben, d. H.

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

Randnotiz: Verwenden Sie JQuery.ajax für allgemeineren Code ...

0
Alexei Levenkov 26 Okt. 2012 im 01:58