Php 在我的站点中发布xml文档时发现困难
我正在使用php和javascript代码将我的xml发布到url。我已经成功地从本地服务器发布了它。但当我在网站上尝试时,我无法将我的xml文档发布到那个url。原因是什么???为什么会发生这种情况,在我的本地服务器上工作得很好,但在站点上什么也没有发生。我必须用php和javascript来实现这一点。有人能帮我吗????下面是我使用的代码Php 在我的站点中发布xml文档时发现困难,php,javascript,xml,Php,Javascript,Xml,我正在使用php和javascript代码将我的xml发布到url。我已经成功地从本地服务器发布了它。但当我在网站上尝试时,我无法将我的xml文档发布到那个url。原因是什么???为什么会发生这种情况,在我的本地服务器上工作得很好,但在站点上什么也没有发生。我必须用php和javascript来实现这一点。有人能帮我吗????下面是我使用的代码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>
XML parsing, serialization, asynchronous HTTP POST data exchange
</title>
<script type="text/javascript">
/* dummy implementations for those browsers not having XML support */
function createXMLFromString (string) {
output('XML not implemented.');
return null;
}
function serializeXML (xmlDocument) {
output('XML not implemented.');
return '';
}
function postXML (url, xmlDocument) {
var httpRequest;
try {
httpRequest = new ActiveXObject(Msxml2.XMLHTTP);
alert("gfh")
httpRequest.open('POST', url, true);
httpRequest.onreadystatechange = function () {
if (httpRequest.readyState == 4) {
responseHandler(httpRequest);
}
};
httpRequest.send(xmlDocument);
return httpRequest;
}
catch (e) {
output("XML not implemented.");
return null;
}
}
function output (text) {
var p, layer;
if (document.createElement && (p = document.createElement('p'))) {
p.appendChild(document.createTextNode(text));
document.body.appendChild(p);
}
else if (typeof Layer != 'undefined' && (layer = new
Layer(window.innerWidth))) {
layer.top = document.height;
layer.left = 0;
layer.document.open();
layer.document.write('<p>' + text + '<\/p>');
layer.document.close();
layer.visibility = 'show';
document.height += layer.clip.height;
}
}
</script>
<script type="text/jscript">
function createXMLFromString (string) {
var xmlDocument;
try {
xmlDocument = new ActiveXObject('Microsoft.XMLDOM');
xmlDocument.async = false;
xmlDocument.loadXML(string);
return xmlDocument;
}
catch (e) {
output("Can't create XML document.");
return null;
}
}
function serializeXML (xmlDocument) {
return xmlDocument.xml;
}
function postXML (url, xmlDocument, responseHandler) {
var httpRequest;
try {
httpRequest = new ActiveXObject('Microsoft.XMLHTTP');
httpRequest.open('POST', url, true);
httpRequest.onreadystatechange = function () {
if (httpRequest.readyState == 4) {
responseHandler(httpRequest);
}
};
httpRequest.send(xmlDocument);
return httpRequest;
}
catch (e) {
output("Can't post XML document.");
return null;
}
}
</script>
<script type="text/javascript; version=1.5">
function createXMLFromString (string) {
var xmlParser, xmlDocument;
try {
xmlParser = new DOMParser();
xmlDocument = xmlParser.parseFromString(string, 'text/xml');
return xmlDocument;
}
catch (e) {
output("Can't create XML document.");
return null;
}
}
function serializeXML (xmlDocument) {
var xmlSerializer;
try {
xmlSerializer = new XMLSerializer();
return xmlSerializer.serializeToString(xmlDocument);
}
catch (e) {
output("Can't serialize XML document.");
return '';
}
}
function postXML (url, xmlDocument, responseHandler) {
try {
var httpRequest = new XMLHttpRequest();
httpRequest.open('POST', url, true);
httpRequest.onreadystatechange = function () {
if (httpRequest.readyState == 4) {
responseHandler(httpRequest);
}
};
httpRequest.send(xmlDocument);
return httpRequest;
}
catch (e) {
try{
var httpRequest = new ActiveXObject(Msxml2.XMLHTTP);
httpRequest.open('POST', url, true);
httpRequest.onreadystatechange = function () {
if (httpRequest.readyState == 4) {
responseHandler(httpRequest);
}
};
httpRequest.send(xmlDocument);
return httpRequest;
}catch (e){
output("Can't post XML document");
return null;
}
}
}
</script>
<script type="text/javascript">
/* Here starts the code to perform some tests with the script functions
defined above.
*/
function testXMLDocumentCreationFromString () {
var xmlDocument =
createXMLFromString('<gods><god name="Kibo" \/><\/gods>');
if (xmlDocument) {
output('Parsing from string results in: ' + xmlDocument);
output('xmlDocument.documentElement.nodeName: ' +
xmlDocument.documentElement.nodeName);
var xibo = xmlDocument.createElement('god');
xibo.setAttribute('name', 'Xibo');
xmlDocument.documentElement.appendChild(xibo);
output(
'xmlDocument.documentElement.lastChild.getAttribute("name"): ' +
xmlDocument.documentElement.lastChild.getAttribute("name"));
}
return xmlDocument;
}
function testXMLDocumentSerialization (xmlDocument) {
if (xmlDocument) {
output(xmlDocument + ' serialized has markup: ' +
serializeXML(xmlDocument));
}
}
function exampleResponseHandler (httpRequest) {
output('HTTP response status: ' + httpRequest.status);
output('Response as text: ' + httpRequest.responseText);
output('responseXML.documentElement.nodeName: ' +
httpRequest.responseXML.documentElement.nodeName);
}
function testXMLPosting (url, xmlDocument, responseHandler) {
if (xmlDocument) {
var httpRequest = postXML(url, xmlDocument, responseHandler);
output('Trying to HTTP POST ' + xmlDocument + ' to ' + url +
' results in: ' + httpRequest);
}
}
window.onload = function (evt) {
var xmlDocument ="my xml document";
//testXMLDocumentSerialization(xmlDocument);
testXMLPosting('myurl', xmlDocument,exampleResponseHandler);
};
</script>
</head>
<body>
<h1>XML parsing, serialization, asynchronous HTTP POST data exchange</h1>
</body>
</html>
XML解析、序列化、异步HTTP POST数据交换
/*不支持XML的浏览器的虚拟实现*/
函数createXMLFromString(字符串){
输出('XML未实现');
返回null;
}
函数序列化XML(xmlDocument){
输出('XML未实现');
返回“”;
}
函数postXML(url,xmlDocument){
var-httpRequest;
试一试{
httpRequest=新的ActiveXObject(Msxml2.XMLHTTP);
警报(“gfh”)
httpRequest.open('POST',url,true);
httpRequest.onreadystatechange=函数(){
if(httpRequest.readyState==4){
负责人(httpRequest);
}
};
httpRequest.send(xmlDocument);
返回httpRequest;
}
捕获(e){
输出(“未实现XML”);
返回null;
}
}
函数输出(文本){
var p,层;
if(document.createElement&(p=document.createElement('p')){
p、 appendChild(document.createTextNode(text));
文件.正文.附件(p);
}
else if(图层类型!=“未定义”&(图层=新建
层(window.innerWidth))){
layer.top=document.height;
layer.left=0;
layer.document.open();
layer.document.write(“”+文本+”);
layer.document.close();
layer.visibility='show';
document.height+=layer.clip.height;
}
}
函数createXMLFromString(字符串){
var XML文档;
试一试{
xmlDocument=newActiveXObject('Microsoft.XMLDOM');
xmlDocument.async=false;
loadXML(字符串);
归还文件;
}
捕获(e){
输出(“无法创建XML文档”);
返回null;
}
}
函数序列化XML(xmlDocument){
返回xmlDocument.xml;
}
函数postXML(url、xmlDocument、responseHandler){
var-httpRequest;
试一试{
httpRequest=newActiveXObject('Microsoft.XMLHTTP');
httpRequest.open('POST',url,true);
httpRequest.onreadystatechange=函数(){
if(httpRequest.readyState==4){
负责人(httpRequest);
}
};
httpRequest.send(xmlDocument);
返回httpRequest;
}
捕获(e){
输出(“无法发布XML文档”);
返回null;
}
}
函数createXMLFromString(字符串){
var-xmlParser,xmlDocument;
试一试{
xmlParser=newdomparser();
xmlDocument=xmlParser.parseFromString(string,'text/xml');
归还文件;
}
捕获(e){
输出(“无法创建XML文档”);
返回null;
}
}
函数序列化XML(xmlDocument){
var-xmlSerializer;
试一试{
xmlSerializer=新的xmlSerializer();
返回xmlSerializer.serializeToString(xmlDocument);
}
捕获(e){
输出(“无法序列化XML文档”);
返回“”;
}
}
函数postXML(url、xmlDocument、responseHandler){
试一试{
var httpRequest=new XMLHttpRequest();
httpRequest.open('POST',url,true);
httpRequest.onreadystatechange=函数(){
if(httpRequest.readyState==4){
负责人(httpRequest);
}
};
httpRequest.send(xmlDocument);
返回httpRequest;
}
捕获(e){
试一试{
var httpRequest=新的ActiveXObject(Msxml2.XMLHTTP);
httpRequest.open('POST',url,true);
httpRequest.onreadystatechange=函数(){
if(httpRequest.readyState==4){
负责人(httpRequest);
}
};
httpRequest.send(xmlDocument);
返回httpRequest;
}捕获(e){
输出(“无法发布XML文档”);
返回null;
}
}
}
/*下面开始使用脚本函数执行一些测试的代码
定义见上文。
*/
函数testXMLDocumentCreationFromString(){
var xmlDocument=
createXMLFromString(“”);
如果(XML文档){
输出('从字符串解析结果:'+xmlDocument);
输出('xmlDocument.documentElement.nodeName:'+
xmlDocument.documentElement.nodeName);
var xibo=xmlDocument.createElement('god');
setAttribute('name','xibo');
xmlDocument.documentElement.appendChild(xibo);
输出(
'xmlDocument.documentElement.lastChild.getAttribute(“名称”):'+
xmlDocument.documentElement.lastChild.getAttribute(“名称”);
}
归还文件;
}
函数testXMLDocumentSerialization(xmlDocument){
如果(XML文档){
输出(xmlDocument+'序列化后有标记:'+
序列化xml(xmlDocument));
}
}
函数示例ResponseHandler(httpRequest){
输出('HTTP响应状态:'+httpRequest.status);
输出('作为文本的响应:'+httpRequest.responseText);
输出('responseXML.documentElement.nodeName:'+
httpRequest.responseXML.documentElement.nodeName);
}
函数testXMLPosting(url、xmlDocument、responseHandler){
如果(XML文档){
var httpRequest=postXML(url、xmlDocument、responseHandler);
输出('试图通过HTTP将'+xmlDocument+'发布到'+url+
'结果:'+httpRequest);
}
}
window.onload=函数(evt){
var xmlDocument=“我的xml文档”;
//testXMLDocumentSerialization(xmlDocument);
testXMLPosting('myurl',xmlDocument,exampleResponseHandler);
};
XML解析、序列化、异步HTTP POST数据交换
有人能帮我解决这个问题吗………你有权上传这个文件吗?它也可能是服务器站点上的一些配置(安全选项、缺少扩展等)。此外,仅仅因为JavaScript的版本不同,就真的需要有这么多声明吗?您能把代码的格式设置得更好一点吗。代码块需要缩进4个空格。还有一些信息呢