1

こんにちは、codeigniter で開発された stie があり、ajax 呼び出しで xml を送信したいと考えています。xml は別のサーバーからのものです。これは私の見解ではajaxです

            xmlDoc.loadXML(xmlfromserver);

            $(function(){
                 $.ajax({
                  type: "POST",
                  url: "<?php echo site_url('/backend/provider/all_country_request'); ?>",
                  data: "xml"+xmlDoc.xml,
                  async: false,
                  contentType: "text/xml",
                  dataType: "text",
                  success: function(msg)
                  {
                    alert(msg);
                  },
                  error: function()
                  {
                    alert("error");
                  }
                });
            });

これは私のコントローラーです:

public function all_country_request(){
        if ($this->User_model->isLoggedIn()){
            $this->Travco_model->all_country_request();
        }
        else{
            redirect('/backend/user/home/');
        }
    }

これは私の単純なモデルです:

function all_country_request(){
         $xml_str = $_POST['xml'];
         $xml = new SimpleXMLElement($xml_str);
         foreach ($xml->DATA as $entry){            
            $data = array(
              'currency_code_travco'=>$entry->attributes()->CURRENCY_CODE,
              'currency_name'=>$entry->CURRENCY_NAME,
              'created'=>date('Y-m-d H:i:s'),
              'modified'=>date('Y-m-d H:i:s'),
         );
         $this->db->insert('currency_travco',$data);
            echo '<br>';
         } 
         
    }

これは私のXMLです:

<?xml version="1.0" standalone="yes"?>
<RETURNDATA lang="it-IT" type="COR" xsi:noNamespaceSchemaLocation="http://xmlv5test.travco.co.uk/trlink/schema/CountryRequestV6Rcv.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<MESSAGE>All Countries details and relevant city details</MESSAGE>
<DATA COUNTRY_CODE="ABW" CURRENCY_CODE="EUR">
    <COUNTRY_NAME>Aruba</COUNTRY_NAME>
    <CURRENCY_NAME>euro</CURRENCY_NAME>
</DATA>

私に返されるエラーは、添付の画像にあります ここに画像の説明を入力

何が問題ですか?

4

2 に答える 2

1

xmlドキュメントをデータとしてサーバーに送信します。processDataオプションをfalseに設定する必要があります。これにより、データから文字列への自動変換が防止されます。例えば ​​:

$.ajax({
  url: "page.php",
  processData: false,
  data: xmlDocument
});

幸運を、

于 2013-03-08T12:13:45.697 に答える