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?
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