【问题标题】:Finding difficult when i post xml document in my site当我在我的网站上发布 xml 文档时发现困难
【发布时间】:2009-06-04 04:46:59
【问题描述】:

我正在使用 php 和 javascript 代码将我的 xml 发布到 url。我已经从我的本地服务器成功发布了它。但是当我在站点中尝试它时,我无法将我的 xml 文档发布到该 url。会是什么原因呢???为什么会发生这种情况,在我的本地服务器上运行良好,但站点中没有发生任何事情。我必须用 php 和 javascript 来做这件事。谁能帮我????下面是我用过的代码。

<!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>

任何人都可以在这个问题上帮助我.........

【问题讨论】:

  • 您能否更好地格式化您的代码。代码块需要缩进 4 个空格。
  • 关于服务器代码的一些信息怎么样?例如。您是否尝试将帖子数据转储到文件中?解析过程在哪里失败?
  • 您能否在服务器上显示您要发布到的文档的 URL 和代码?

标签: php javascript xml


【解决方案1】:

您是否有权上传文件?也可能是服务器站点上的一些配置(安全选项、缺少扩展等)。

【讨论】:

    【解决方案2】:

    另外,真的有必要有这么多

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-16
      • 2021-04-11
      • 1970-01-01
      • 1970-01-01
      • 2021-09-16
      • 1970-01-01
      • 1970-01-01
      • 2018-02-02
      相关资源
      最近更新 更多