0

感谢您抽出宝贵时间帮助我。

尽管我肯定不是第一个遇到这个问题的人,但到目前为止我找不到任何好的答案,所以就这样了。

假设我有两个 ASP(经典)页面。

Target1.asp使用 response.redirect(url)重定向到Target2.asp

现在,我必须使用异步方法获取 Target1.asp,您可能已经发现我正在使用AJAX来执行此操作。

问题是当我使用$.ajax('method':'GET', [...])或简单地使用$.get('Target1.asp')并让“完成”回调用响应内容填充 div 时,它将整个页面重定向到 Target2.asp 而不是填充 div。

原因很简单:这个div里面确实是Target1.asp的内容。浏览器仍然需要重定向,因为 div 根本不像 iframe,所以整个页面都会被重定向。

我几乎可以肯定你不能直接从 javascript (?) 控制重定向。

有没有办法在不使用 iframe 的情况下处理这个问题?

这就是我想要做的:使用 ajax 的 GET 方法请求 Target1.asp,处理重定向(或类似的东西),以便 ajax 请求 Target2.asp,然后用最终结果填充 div。

谢谢你。

早期编辑:如果您需要一个编码示例,我可以写一个。

4

3 回答 3

1

是的,

将 response.redirect(url) 替换为server.execute(url)server.transfer(URL)
这将保持对服务器上导航的控制,并且不会让浏览器重定向。
以下是不同之处(在 .NET 中,但它是同一个 IIS 对象,因此经典 ASP 也是如此)

高温下,

埃里克

于 2013-03-21T13:38:31.770 回答
1

您应该注意在问题标题中注意您正在使用 jQuery。虽然,是的,您正在调用 Ajax 方法,但您并没有手动执行它,而是依赖于您正在使用的库可能显式的功能。

简短的回答是,不,您可能无法阻止重定向透明地发生,因为这通常是由浏览器本身自动完成的。更长的答案是您可能应该尝试做一些事情来检查您从 ajax 响应中返回的数据,看看它是否符合您的预期。当然,这可能非常依赖于您是否有任何机制来处理您返回的数据,或者您是否可以控制服务器端响应。

以下有关 stackoverflow 的文章更详细:

如何使用 jQuery 防止 ajax 请求跟随重定向

于 2013-03-21T13:52:06.650 回答
0

您有一个满意的答案,但您可能还想尝试

myurl = "http://(a full external url)" 
set xmlhttp = Server.CreateObject("Msxml2.ServerXMLHTTP.6.0") 
xmlhttp.open "GET", myurl, false 
xmlhttp.send "" 
Response.write xmlhttp.responseText 
set xmlhttp = nothing 

这就是我运行一个asp页面并包含输出的意思,这与包含文件语句略有不同

于 2013-03-21T14:06:18.090 回答