我有一个 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
像 as 那样的模式,$c:$b
但它正在像$c:{"0":$b}
. 如何从 php 脚本返回数组,以便我可以获得有效的 json 响应。