Heim >Backend-Entwicklung >PHP-Tutorial >URL-Pfade werden bei Ajax-Anfragen unter Linux PHP wiederholt

URL-Pfade werden bei Ajax-Anfragen unter Linux PHP wiederholt

WBOY
WBOYOriginal
2016-08-08 09:23:171215Durchsuche

1. Das im Projekt verwendete YII-Framework verfügt über eine Methode in Usertest.php unter dem Modul:

public function getTextArea($fieldName,$usertest_id) {    	      
        return CHtml::activeTextArea($this,$fieldName,array("name"=>$fieldName."_".$usertest_id,'style'=>'rows:3;cols:20;',"ajax" => array("type"=>"POST","url"=>"/usertest/ChangeComments", "data"=>array("usertest_id"=>$usertest_id,"usertest_comments"=>"js:this.value"),"success"=>"js:alert(\"Update comments success!\")")));     
    }
Der aufrufende Ort befindet sich in usertest/index.php, der Code lautet wie folgt:

array(
        'name' => 'usertest_comments',
        'id' => 'usertest_comments',
        'header'=>'Comments',
       'type'=>'raw',
        'value'=>'$data->getTextArea(\'usertest_comments\',$data->usertest_id)',
        'htmlOptions'=>array('style'=>'width:100px;'),
       ),

Entwickelt unter Windows, es gibt kein Problem mit dem Seitenzugriff und der Zugriffspfad ist korrekt: */usertest/ChangeComments , Unter Linux wird es jedoch zu: */usertest/usertest/ChangeComments, was dazu führt, dass die Daten nicht geändert werden können.

2. Ich habe diese Methode ausprobiert:

① Ich dachte, es sei ein Problem mit einfachen und doppelten Anführungszeichen, also habe ich den Code wie folgt geändert :

    public function getTextArea($fieldName,$usertest_id) {    	      
        return CHtml::activeTextArea($this,$fieldName,array("name"=>$fieldName."_".$usertest_id,"style"=>"rows:3;cols:20;","ajax" => array("type"=>"POST","url"=>"usertest/ChangeComments","data"=>array("usertest_id"=>$usertest_id,"usertest_comments"=>"js:this.value"),"success"=>"js:alert(\"Update comments success!\")")));     
    }
Das Problem wurde immer noch nicht gelöst, also habe ich es in „Single“ geändert zitiert und einen Fehler direkt gemeldet. Als ich es später wieder änderte, wurde auch unter Windows ein Fehler gemeldet. Es war derselbe wie bei Linux. Ich war sprachlos.

②Ändern Sie "url"=>"usertest/ChangeComments" in "url "= >"/usertest/changeComments", Linux unterscheidet zwischen Groß- und Kleinschreibung, funktioniert aber trotzdem nicht.

③Dann ändern Sie es wie folgt: "url"=>"http://enduserfeedback.ta- mp. com:8080/usertest/changeComments“, gibt es unter Windows kein Problem. Das Ergebnis wurde auf Linux übertragen und ein Fehler gemeldet,

Nein Der Header „Access-Control-Allow-Origin“ ist auf der angeforderten Ressource „http://172.24

Baidu Next“ vorhanden Nachdem Sie die Änderungen gemäß diesem Artikel vorgenommen haben (klicken Sie hier, um den Link zu öffnen), ist alles in Ordnung. Später habe ich den absoluten Pfad entfernt und nur „dataType“ => „JSONP“ übrig gelassen, was kein Problem zu sein schien.

3. Wie auch immer, das Programm ging immer hin und her und schließlich wurde das Problem so gelöst

Das Obige stellt die Duplizierung von URL-Pfaden während Ajax-Anfragen unter Linux PHP vor, einschließlich des Inhalts. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.

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