使用base64编码字符串将XML从Javascript发送到PHP
我必须通过Javascript将XML发送到PHP,我通过jQuery这样做:使用base64编码字符串将XML从Javascript发送到PHP,php,javascript,xml,base64,Php,Javascript,Xml,Base64,我必须通过Javascript将XML发送到PHP,我通过jQuery这样做: $.ajax({ url : 'http://myurl', type : 'POST', data : { documentXML : escape(xml) }, dataType : 'text', suc
$.ajax({
url : 'http://myurl',
type : 'POST',
data : { documentXML : escape(xml) },
dataType : 'text',
success : function( data ) {
// Do something
},
error : function() {
alert('Failed to send ajax request!');
}
})
if(isset($_REQUEST['documentXML'])) {
$receivedXML = urldecode($_REQUEST['documentXML']);
} else {
die('<?xml version="1.0"?><error>No documentXML given.</error>');
}
我正在用PHP解码xml,如下所示:
$.ajax({
url : 'http://myurl',
type : 'POST',
data : { documentXML : escape(xml) },
dataType : 'text',
success : function( data ) {
// Do something
},
error : function() {
alert('Failed to send ajax request!');
}
})
if(isset($_REQUEST['documentXML'])) {
$receivedXML = urldecode($_REQUEST['documentXML']);
} else {
die('<?xml version="1.0"?><error>No documentXML given.</error>');
}
然而,在XML中嵌入了其他XML;这是通过base64编码嵌入的XML来完成的。在此过程中,base64将变为无效
鉴于更改XML结构或编码不是一个选项:
我能做什么?
我这样做是正确的方法吗?
谢谢。当你说“变成无效”时,这是什么意思?生成的base64文本是什么样子的?此外,我认为您不需要转义并对POST数据进行URL解码;如果我不这样做,XML是无效的simplexml\u load\u字符串$rawXml返回FALSE。xml属性看起来是这样的:base64在这里失败了:然而,PHP转换了它,但是最终解码的xml的属性变成了一堆特殊的chars.Hm,扔掉了escape和urldecode,但在PHP中添加了stripslashed,这似乎是可行的。我来测试一下。