Heim >Backend-Entwicklung >PHP-Tutorial >javascript - Können lokale Ajax-Anfragen entsprechende Daten basierend auf Parametern wie einem PHP-Server zurückgeben? ?

javascript - Können lokale Ajax-Anfragen entsprechende Daten basierend auf Parametern wie einem PHP-Server zurückgeben? ?

WBOY
WBOYOriginal
2016-12-01 01:27:541199Durchsuche

Können lokale Ajax-Anfragen entsprechende Daten basierend auf Parametern wie einem PHP-Server zurückgeben?
Ich weiß jetzt, dass die Webseite über eine Ajax-Anfrage Daten in PHP abrufen und verschiedene Datenparameter über dieselbe Adresse übergeben kann, um unterschiedliche Daten zu erhalten. Kann der gleiche Effekt jedoch erzielt werden, wenn eine lokale JSON-Datei abgerufen wird?

Antwortinhalt:

Können lokale Ajax-Anfragen entsprechende Daten basierend auf Parametern wie einem PHP-Server zurückgeben?
Ich weiß jetzt, dass die Webseite über eine Ajax-Anfrage Daten in PHP abrufen und verschiedene Datenparameter über dieselbe Adresse übergeben kann, um unterschiedliche Daten zu erhalten. Kann der gleiche Effekt jedoch erzielt werden, wenn eine lokale JSON-Datei abgerufen wird?

Nein, Ressourcen können nur lokal anhand unterschiedlicher URLs unterschieden werden.
Andere Daten zurückgeben, die vom Server verarbeitet werden müssen und ohne lokale Umgebung nicht implementiert werden können. Tatsächlich können Sie versuchen, mit Node eine einfache Umgebung einzurichten

Die Beschreibung des Problems ist nicht klar genug. Was Sie mit dem Abrufen der lokalen JSON-Datei meinen: xhr.open('post' , url , true) Ist das url hier kein Serverskript wie: php/test.php, sondern test.json so? ?

Wenn Sie Daten nicht über ein Serverskript wie PHP planen, können Sie den Dateiinhalt direkt anfordern.

Zum Beispiel:
Hier sind drei JSON-Dateien: test.json , test1.json ,test2.json

<code>js:
var path = 'test.json';  // 只要更换:test1.json || test2.json 就可以切换成不同的内容
xhr.open('post' , path , true); // 
xhr.setRequestHeader('Content-Type' , 'application/x-www-form-urlencoded');
xhr.send();
xhr.onreadystatechange = function(){
    if (this.readyState === 4 && this.status === 200) {
        console.log(this.responseText); // 可以查看到 test.json 中的数据
    }
}</code>

Wenn Sie zu PHP wechseln, ist der Effekt derselbe:

<code>js:
var sendData = 'require=test';  // 只要更换参数: require test1 || require = test2 就可切换不同内容
xhr.open('post' , 'test.php', true);  
xhr.setRequestHeader('Content-Type' , 'application/x-www-form-urlencoded');
xhr.send(sendData);
xhr.onreadystatechange = function(){
    if (this.readyState === 4 && this.status === 200) {
        console.log(this.responseText); // 可以查看到 test.json 中的数据
    }
}

test.php:
$require = $_POST['require'];
switch ($require)
 {
    case 'test':
       require 'test.json';
       exit;
   case 'test1':
       require 'test1.json';
       exit;
   .....
 }</code>

Zusammenfassend bin ich persönlich der Meinung, dass PHP über zusätzliche Verarbeitungsfunktionen verfügt. Daher wird empfohlen, dass xhr relevante Parameter zur Verarbeitung an PHP sendet und dann die Daten zurückmeldet, anstatt unverarbeitete Rohtextdaten direkt anzufordern

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn