jQuery を使用して新しい URL にリダイレクトしようとすると問題が発生しますが、どういうわけかこの特定のケースでは機能しません。 HTML と Django バックログで jQuery を使用していますが、これらのいずれかが未定義のパラメーターが表示される原因ではないと思います。コードは非常に単純です:
リーリークリックされた HTML 要素は次のとおりです:
リーリーこの場合、console.log(url)
を使用して URL をログに記録し、"/something/something/"
の形式で文字列を取得できます。ブラウザの検査ツールはブレークポイントを使用して、URL に実際に正しい URL が含まれていることを確認し、URL のタイプ (文字列) を取得できます。ただし、このコードを実行するボタンをクリックすると、サイトは http://127.0.0.1:8000/unknown
(ローカル サーバーを使用しています) にリダイレクトされるため、どういうわけか URL が定義されています。
window.location=url
、window.location.href= url など、新しい URL にリダイレクトするあらゆる方法を試すなど、これを行うためにさまざまな方法を試してきました。
ですが、常に未定義として表示されます。 URL のコンテンツとタイプも印刷してみましたが、すべて問題ないようです。私にとって最も奇妙なのは、コードを
最初の let URL 行の console.log() 結果から URL をコピーして貼り付けても、コードは正しい URL に正しくリダイレクトされます。
問題を要約すると、data-href
パッケージの URL を含むボタンがあります。ボタンがクリックされると、jQueryでURLを取得し、URLとして保存します。これで、console.log()
を使用して URL をログに記録し、タイプを取得できるようになり、URL と期待するタイプ (文字列) を取得できます。この URL にリダイレクトしようとすると、「URL http://127.0.0.1:8000/unknown
にリダイレクトできません」というエラーが表示されます。以前のロギング テストからコピー&ペーストした文字列に URL をハードコーディングしたところ、リダイレクトが突然機能しました。
この問題を解決するために他に何を試せるか知っている人はいますか?
セレクター
.view-diagnostics
は 2 つの 要素と一致します。ボタン
とdiv
。ボタンの関数を呼び出し、必要な値を
window.location.pathname
に割り当てます。イベントは
div
までバブルアップし、 関数 を 2 回呼び出します。div
にはdata-*
属性がないため、url
はunknown
です。これはwindow.location.pathname
に割り当てられ、以前の割り当てを上書きします。