到目前为止,我已经花了一天的时间来解决这个问题。问题是Flash显然用&
代替&在我的GET查询参数中。
例如,我正在向URLLoader发送一个URLRequest,其URL类似于:
http://foo.blah.com/app/index.php?abc=def&ghi=jkl&mno=pqr
我通过查看调试器中的var来验证这一点。但它在我们的服务器上失败了。 Ethereal报告实际通过网络传输的是:
GET /app/index.php?abc=def&ghi=jkl&mno=pqr
不是第一个,而是第二个&正在被&
替换。
我无法弄清楚如何让它停止这样做。什么可能导致这个?或者,是否有人对我可以调查的事情有任何想法?
答案 0 :(得分:1)
使用data属性构造传递的GET变量(您还必须将请求方法设置为GET,请查看AS3文档以获取更详细的信息。)
示例:
var getVars:URLVariables = new URLVariables();
getVars.abc = "def";
getVars.ghi = "jkl";
var request:URLRequest = new URLRequest();
request.data = getVars;
urlLoader.load(request);
答案 1 :(得分:0)
唉。好的,感谢Theo(我会因为我不知道URLVariables而得到答复)我去检查了可能出错的每一件事。
真正的问题是我确实在原始网址请求中有&
。我正在做一个string.replace(),当然只会遇到第一个实例。
问题就是在调试器中,Flash显然有助于将&
转换回&!所以我没有看到这个错误。谢谢Flash!
如果我在输出上做了一个跟踪()以确定(我以为我有,但我显然没有),那么我会注意到这一点。