http://www.im286.com/viewthread.php?tid=1550010&extra=page%3D1
実際、この問題はn回議論されています
Care4も2回言及されているので、問題がある場合は、最初に検索するのが最善です。誰かが問題を解決したかもしれません
http://www.im286.com/viewthread。 ...;ハイライト=%2BCARE4
http://www.im286.com/viewthread。 ...;ハイライト=%2BCARE4
Care4のコードの小さな欠点の1つは、コンポーネントが必要であることです。
1つ目は.NETコンポーネント2ですが、コンポーネントを使用すると常に便利ではありません。 ASPを直接入手する方法はありますか?
答えがあります
VB Simple Winsockコードを取得しました
http://www.im286.com/viewthread。 ... t = response.redirect
当時、私はその時点でCSSDNに行かなかったので、ASPでそれを手に入れることができないと言いました。
まず、XMLHTTPコンポーネントがそのようなジャンプアドレスを取得できない理由を理解する必要があります
response.redirectを使用してジャンプし、PHPはヘッダー( "location"、$ url)です。
両方の方法の原理は同じです。これは、出力HTTPヘッダーに位置フィールドを追加することです
同時に、返されたHTTPステータス値を302に設定すると、ブラウザは現在要求されているページが
場所で指定されたパスに移動しました
では、なぜxmlhttpを取得できないのでしょうか?
その理由は非常に簡単です
XMLHTTPコンポーネントは、ロケーションヘッダーを含む302メッセージを処理するとスマートすぎるため、最後のページに直接ジャンプします。つまり、中間プロセスが表示されません。ビルは賢いです!
幸いなことに、MSXML4は新しい利用可能なコンポーネントを提供します:winhttp.winhttprequest.5.1は、MSXML4 XMLHTTPコンポーネントのコアでもあります。 winhttp.winhttprequestには非常に重要なプロパティがあります:オプション。このプロパティの6番目のインデックスは、自動的にジャンプするかどうかを示します。次に、XMLHTTPコンポーネントのgetResponseHeaderおよびgetAllResponseHeadersメソッドを簡単に使用して、返されたHTTPヘッダー情報を取得できます。
わかりました、次のコードを見てみましょう
dim ohttp
ohttp = server.createobject( "winhttp.winhttprequest.5.1"
ohttp.option(6)= 0 '自動リダイレクトは禁止されています。最も重要なことは、単にデータを読むことです。誰もがそれを行うと推定されます。
ohttp.settimeouts 5000,5000,30000,5000'setタイムアウト〜serverxmlhttpコンポーネントと同じ
ohttp.open "get"、surl、false '同期モードでURLを開く
ohttp.status <> 200およびohttp.status <> 302の場合
'ohttp.statusは、返されたHTTPステータスに対応しています。 200の場合、これが最終ページであり、ロケーションジャンプがないことを意味します
「302の場合、現在の要求のURLが移動され、HTTPヘッダーに従ってリダイレクトする必要があることを意味します。
「私たちは基本的に他の数値的値で状態を処理しませんが、自分で440や他の状態のようにそれらを処理できます!
それ以外
'返されたHTTPヘッダーとドキュメントコンテンツはここで処理されます
ifを終了します
さて、完全なコードは長いです
私はそれを自分で見るためにそれをスペースに渡しました
http://test.aymtv.com/url.asp
デフォルトの入力バーのコードは、CRSKYのダウンロードアドレスです。あなたはそれをテストして知ることができます
クリックしてソースコードを表示して、このASPファイルのソースコードを表示します!
すべてが行われます。 CSDNに移動し続け、混同します
完全なコード: