1

我们有一个脚本 A,它通过向脚本 B 发送一个带有一些 GET 参数的 HTTPRequest 来获取信息。

var URL = "http://domain.com/scriptB?ID="+ID;
var XMLGateway = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
    XMLGateway.open("GET", URL, false);
    XMLGateway.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

该脚本 B 然后使用传递给它的查询字符串中的 ID 来返回一些信息。然而,这是不一致地抛出错误。

一些调查显示,我们在 GET 中传递的不是 ID(它总是采用五位数字的格式),而是使用像“.sp-app-5”这样的字符串,其中数字是 5-9 所以远的。

String("["+Request("ID")+"]"); // [.sp-app-9]

我在处理这个错误时遇到了麻烦,因为脚本 B 中使用的 Request.QueryString 显示了脚本 A 接收到的 QS。但是,Request("ID") 正在返回上述异常字符串。

Server.HTMLEncode(Request.ServerVariables("HTTP_HOST")); // domain.com
Server.HTMLEncode(Request.ServerVariables("QUERY_STRING")); // scriptA?some=values&foo=bar (same result as Request.QueryString)

如何显示脚本 B 在 HTTP 请求中接收的查询字符串?

4

1 回答 1

0

如果我理解正确,您需要验证脚本 A 是否正确发送请求中的 GET Querystring。对于这种情况,我经常使用 Telerek(在 Windows 上)提供的名为“Fiddler”的免费工具。它将监视您的所有 http 调用并记录请求和响应,包括查询字符串。它非常易于安装,并且在执行此类项目时非常有用。

如果脚本 A 正确发送了 ID,或者脚本 B 对 ID 的解释不正确,这将帮助您缩小范围。

希望这可以帮助!

提琴手输出示例

www.telerik.com/download/fiddler

于 2015-01-28T16:04:51.633 回答