我有一个flash应用程序,它将xml发布到一个php页面,该页面根据xsd模式验证它。我试图做同样的事情,但从一个html页面。我正在使用XMLHttpRequest或jquery的ajax调用,但我一直在运行相同的问题。"文档没有文档"或"access-control-allow-origin "报头问题。我可以修一个,但不能修另一个。
我的PHP页面是这样的:
function libxml_append_errors() {
global $returnXML, $errors;
$e = libxml_get_errors();
foreach ($e as $error) {
$en = $returnXML->createElement("error", trim($error->message));
$en->setAttribute('line',$error->line);
$errors->appendChild($en);
}
libxml_clear_errors();
}
libxml_use_internal_errors(true);
$xml = new DOMDocument();
$contents = $HTTP_RAW_POST_DATA;
$xml->loadXML($contents);
$returnXML = new DOMDocument("1.0", "utf-8");
$rootNode = $returnXML->createElement("result");
$returnXML->appendChild($rootNode);
$errors = $returnXML->createElement("errors");
if (!$xml->schemaValidate('muffin_dumplings.xsd'))
{
libxml_append_errors();
}
$rootNode->appendChild($errors);
echo $returnXML->saveXML();
无论哪种方式,我都希望得到xml返回任何验证错误或一个简单的空错误xml节点,就像我对flash做的一样。
如果有人关心,这里是答案。当你发布到PHP,有正确的标题,并使用ajax,你需要传递一个内容类型。