Heim > Web-Frontend > js-Tutorial > Jsonp-Post-Cross-Domain-Lösung_Javascript-Kenntnisse

Jsonp-Post-Cross-Domain-Lösung_Javascript-Kenntnisse

WBOY
Freigeben: 2016-05-16 15:51:25
Original
1057 Leute haben es durchsucht

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.

Beschreibung:
http://www.t1.com/index.phpServer-URL
Dies ist natürlich meine lokale Konfiguration und muss in meine eigene entsprechende Adresse geändert werden.

Kundencode:

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

Servercode:

 
<&#63;php
if($_POST){
  $arr = array('name'=>$_POST['name'], 'age'=>23);
  echo json_encode($arr);
}
Nach dem Login kopieren

Der Browser läuft wie folgt:

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

Nach langer Mühe habe ich endlich einige Informationen dazu in Stackoverflow gefunden. Es scheint, dass auch Ausländer auf solche Probleme stoßen. Ich werde die Adresse für alle veröffentlichen

http://stackoverflow.com/questions/3860111/how-to-make-a-jsonp-post-request-that-specify-contenttype-with-jquery
Die wichtigsten Punkte sind wie folgt:

Beim Betrachten des Bildes oben haben wir festgestellt, dass es Änderungen an den Pfeilmarkierungen gibt. Nachdem wir so lange gekämpft haben, fügen wir es zunächst in das Programm ein, nur für den Fall, dass es möglich ist erledigt

Kundenänderungen:

Hinzugefügt: crossDomain: true

Änderung: dataType: „json“

Serverseitige Ergänzung:

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

header('Access-Control-Allow-Methods: POST');
header('Access-Control-Max-Age: 1000');

Die Laufergebnisse sind wie folgt:

An diesem Punkt stellten wir fest, dass das Problem endlich gelöst war, aber wir stellten im Detail fest, dass die Anfragezeit sehr lang ist,,, es scheint, dass Ausländer keine effiziente Lösung haben,

Abschließend möchte ich noch sagen, dass es wirklich schwierig ist, JSONP im POST-Modus perfekt zu unterstützen. Das braucht viel Zeit.

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 Ihnen allen.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage