将xml发送到PHP,使用XMLHttpRequest或Ajax对xsd进行验证


Post xml to PHP for validation against xsd with XMLHttpRequest or Ajax?

我有一个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,你需要传递一个内容类型。