私は次の関数を持っているphpスクリプトを持っています:
<?php
function readXML() {
$url = $_REQUEST['schemaPath'];
$xml = simplexml_load_file($url);
$fields = $xml -> fields -> field;
GLOBAL $array;
GLOBAL $c;
$array = new stdClass;
foreach($fields as $field->attributes){
foreach($field->attributes->attributes() as $a => $b){
if($a == "name") {
$c = $b;
}
if($a == "type") {
$array -> $c = $b;
}
}
}
return json_encode($array);
}
echo readXML();
?>
私は次の方法でajax呼び出しを行っています:
$.ajax({
cache: false,
url: "readXML.php",
type: "POST",
dataType: 'jsonp',
jsonp: 'jsonp_callback',
data: { schemaPath: "http://localhost:8983/solr/admin/file/?file=schema.xml" },
crossDomain: true,
success:function(data) {
if (!data) {
alert("Error in processing xml file");
return null;
} else {
console.log(data);
}
},
error:function(data) {
alert("Error while reading schema file.");
$("#loadingStatus").hide();
}
});
目的のjson応答形式が得られません。Error while reading schema file
応答でアラートを受け取ります。私は実際にそれをのkey:value
ようなパターンにしたいと思っています$c:$b
が、それはのように来てい$c:{"0":$b}
ます。有効なjson応答を取得できるように、phpスクリプトから配列を返す方法。