Heim  >  Artikel  >  Backend-Entwicklung  >  Wie PHP+AJAX domänenübergreifend realisiert

Wie PHP+AJAX domänenübergreifend realisiert

高洛峰
高洛峰Original
2017-02-08 13:17:211657Durchsuche

PHP-Dateicode [Ich verwende PHPCMS als Beispiel]

Fügen Sie einen mobilen Ordner [Modul] unter dem Ordner phpcmsmodules hinzu. Fügen Sie eine index.php-Datei unter dem Modul hinzu. Der Code lautet wie folgt:


/**
public function test()
{
//Datenbankmodell laden
$mb_start_db = pc_base::load_model('mb_start_model');
$where = array('id'=> 1);
$data = ('pic1,pic2,pic3');
$res = $mb_start_db->get_one($where, $data);

if($res)
                                                                                                                                                                                                               result '= & gt; echo $ _get [' callback '].' $ json_arr = Array ('status'=>1,'msg'=>'Success!','result'=>$res);
                  echo json_encode($json_arr);die;
          }
      }

}
Dies ist ein vollständiger Code
**/


Hinweis: : Der obige Code hat ein $_GET['callback'], das ist es nur ein Parameter von jsonp;

Sehen Sie sich den Code der HTML5-Seite an:

Das endgültige Rendering ist wie folgt:

Wie PHP+AJAX domänenübergreifend realisiert

Aber wenn Sie auf die Schaltfläche „Daten abrufen“ klicken [Hinweis: Der Name der Schaltfläche sollte „Daten abrufen“ lauten, Entschuldigung für den Tippfehler], wird die folgende Fehlermeldung angezeigt:

Wie PHP+AJAX domänenübergreifend realisiert

Dieser Fehler ist nicht zulässig, oder domänenübergreifend ist verboten. Die Lösung ist sehr einfach:

Wie PHP+AJAX domänenübergreifend realisiert

/**

header("Access-Control-Allow-Origin:*");

* gibt an, dass auf alle Domänennamen zugegriffen werden kann
**/


Nach dem Hinzufügen des obigen Codes ist der endgültige Effekt wie folgt:


If dataType :'jsonp', wie unten gezeigt

Wie PHP+AJAX domänenübergreifend realisiert

Sehen Sie sich den PHP-Code an:

Wie PHP+AJAX domänenübergreifend realisiert

Die Ergebnisse sind wie folgt:

Wie PHP+AJAX domänenübergreifend realisiert

Eine kurze Zusammenfassung von 2 Punkten:

1. Verwenden Sie JSONP, wenn Sie Ajax-Anfragen stellen, und bringen Sie dann auch JSONP-Daten mit, wenn Sie PHP empfangen und zurücksenden. Wie PHP+AJAX domänenübergreifend realisiert

2. Nur zur Unterstützung von HTML5 bereitgestellt. Um den Browser zu verwenden, müssen Sie nur die folgenden zwei Sätze zum PHP-Header hinzufügen

header("Access-Control-Allow-Origin:*" ); //* gibt an, dass alle Domainnamen vorhanden sind. Sie können

header("Access-Control-Allow-Method:POST,GET");

Weitere Artikel zur PHP+AJAX-Implementierung finden Bei domänenübergreifenden Methoden achten Sie bitte auf die chinesische PHP-Website!

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