【发布时间】:2009-05-31 06:55:53
【问题描述】:
我正在编写一个应用程序,该应用程序从 URL 下载 XML 字符串并将 POSTs 下载到另一个 URL(设置为处理传入的“XML”字段)。我的第一部分是正确的 - 它下载 XML,我可以 alert() 它和所有这些,但我无法弄清楚如何将 POST 该数据发送到服务器。
function pull() {
var myLoader = new air.URLLoader();
var myRequest = new air.URLRequest('http://something/something.xml');
myLoader.addEventListener(air.Event.COMPLETE, pulled);
myLoader.load(myRequest);
}
function pulled(evt) {
if (evt.target.bytesTotal>0) {
// alerting shows the full string just fine
alert(evt.target.data);
var myLoader = new air.URLLoader();
var myRequest = new air.URLRequest('http://someplace/push.php');
myRequest.method = air.URLRequestMethod.POST;
// myVars = new air.URLVariables("xml="+evt.target.data); //
// alert(evt.target.data.toUpperCase());
myRequest.data = "xml="+evt.target.data; // myVars;
myLoader.dataFormat = air.URLLoaderDataFormat.TEXT;
myLoader.addEventListener(air.Event.COMPLETE, pushed);
myLoader.load(myRequest);
}
}
我将第二台服务器 PHP echo 设为 xml 变量的内容,但我无法获得 XML 字符串的确切内容。我正在用 myRequest.data 和/或 dataFormat 位做一些事情。
有人能解决这个问题吗?我知道这可能是一件简单的事情,但我现在已经无能为力了。
这是我的第一个 AIR 应用程序。
另一个相关的问题(或子问题)是……
alert(evt.target.data); // shows an alert box with the XML
alert(typeof evt.target.data); // shows String
alert(evt.target.data.toUpperCase()); // shows the xml converted to upper case
alert(encodeURI(evt.target.data)); // shows up blank.
alert(escape(evt.target.data)); // shows up blank.
为什么??
【问题讨论】:
-
不会那么难吧??
-
目标是Loader。 target.data 是您设置的数据。 -- 所以第一个警报显示了这个值。 typeof 显示'string',因为那是类型'toUpper' - 显示通过 toUpperCase 方法转换的字符串'encodeURI' 失败 - 因为 XML 格式不正确不确定转义 - 听起来像是失败了。 ..不知道为什么它是空白的。
标签: php javascript xml air