Heim  >  Artikel  >  Web-Frontend  >  Jsonp-Post-Cross-Domain-Lösung

Jsonp-Post-Cross-Domain-Lösung

高洛峰
高洛峰Original
2017-01-12 09:59:411014Durchsuche

Kürzlich bin ich im Projekt auf ein solches Problem gestoßen. Der Get-Wert ist in Ordnung, der Post-Wert jedoch nicht. Deshalb habe ich im Internet viele Informationen darüber gelesen Das Problem wurde gelöst. Ich werde mir heute die Zeit nehmen, es mit Ihnen zu teilen.

Hinweis:
http://www.t1.com/index.php Server-URL
Natürlich ist dies meine lokale Konfiguration und muss in meine eigene entsprechende Adresse geändert werden.

Client-Code:

<script>
  $(function(){
      
    var url = &#39;http://www.t1.com/index.php&#39;;
    $.ajax({
      type:      &#39;post&#39;,
      url:      url,
      data:      {name:&#39;wangyulu&#39;},
      dataType:    &#39;jsonp&#39;,
      success:function(result){
        console.log(result);
      }
    });
      
  });
 </script>

Server-Code:

<?php
if($_POST){
  $arr = array(&#39;name&#39;=>$_POST[&#39;name&#39;], &#39;age&#39;=>23);
  echo json_encode($arr);
}

Der Browser läuft wie unten gezeigt:

Jsonp post 跨域方案

Sehen Sie sich die laufenden Ergebnisse an. Auch wenn die Übertragungsmethode auf „Posten“ eingestellt ist, wird Jsonp wirklich nicht auf „Weiterwerfen“ umgestellt.

Es gibt eine Änderung die Pfeilmarkierung, machen Sie sich vorerst keine Sorgen, nachdem wir so lange gekämpft haben, fügen wir es zuerst in das Programm ein, nur für den Fall, dass es möglich ist

Client-Wechsel:
Hinzufügen: crossDomain: true
Ändern: dataType: „json“

Auf der Serverseite hinzufügen:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow -Methods: POST');
header('Access-Control-Max-Age: 1000');

Das laufende Ergebnis ist wie folgt:

Jsonp post 跨域方案

Hier stellen wir fest, dass das Problem endlich gelöst ist, aber wir haben im Detail festgestellt, dass die Anfragezeit sehr lang ist. Es scheint, dass Ausländer keine effiziente Lösung haben.

Endlich das, was ich möchte Sagen wir mal, wenn man die POST-Methode perfekt unterstützen möchte, ist JSONP wirklich schwierig zu handhaben, also lasst uns hier aufhören. Es hat viel Zeit in Anspruch genommen.

Der obige Inhalt hängt möglicherweise mit anderen technischen Punkten zusammen. Die Hauptlösung hier ist Jsonp. Bitte beschweren Sie sich nicht.

Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, er gefällt euch allen.

Weitere Artikel zu Jsonp-Post-Cross-Domain-Lösungen finden Sie auf der chinesischen 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