0

私を助けてくれてありがとう。

私がこの問題を抱えた最初の人ではないことは確かですが、これまでのところ良い答えを見つけることができませんでした。

2 つの ASP (クラシック) ページがあるとします。

response.redirect(url) でTarget2.aspにリダイレクトするTarget1.asp

ここで、非同期メソッドを使用して Target1.asp を GET する必要があります。そのためにAJAXを使用していることは既にお気づきかもしれません。

問題は、$.ajax('method':'GET', [...])または単に$.get('Target1.asp')を使用し、「complete」コールバックで div を応答コンテンツで満たす場合です。 div を埋める代わりに、ページ全体を Target2.asp にリダイレクトします。

理由は非常に単純です。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 オブジェクトであるため、Classic ASP でも同じです)。

HTH、

エリック

于 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 に答える