検索

ホームページ  >  に質問  >  本文

javascript - window.location.href がメソッド内ですぐにジャンプしないのですが、解決する方法はありますか?

質問: location.href = "../exit.html"; は実行されないのに、window.location.href = 'http://www.baidu.com' が実行されるのはなぜですか;?

getData() の実行を終了する方法はありますか。データの取得に失敗した場合は、../exit.html にジャンプし、gourl() を実行しないでください。 ; 方法はどうですか?

補足:

async: ajax の false は同期リクエストです。 ! ! , これは単なる単純なデモです。実際には、getData() メソッドの背後には多くのロジックがある可能性がありますが、getData() がデータの取得に失敗すると、プログラムは他のメソッドを実行できなくなります。ファイル内で他のメソッドを同時に実行することはできません。 リーリー

欧阳克欧阳克2736日前2230

全員に返信(7)返信します

  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-26 11:00:15

    その後、getData メソッドの成功後に gourl をコールバックして、必要な論理処理を実行できます
    さらに、$ajax とそれに対応するエラーがあるため、具体的に is_success を判断する方法がわかりません

    返事
    0
  • 代言

    代言2017-06-26 11:00:15

    あなたのコードは、次の 2 つの文を実行するのと同じです:

    リーリー

    この2つの文を連続して実行すると、以下のアドレスにジャンプします

    私の推測では、ブラウザが最初のジャンプにアクセスするのに時間がかかるが、成功する前に 2 番目のジャンプが再び来るため、最初のジャンプを諦めて 2 番目のジャンプを実行します。 URLも同じです。

    返事
    0
  • 为情所困

    为情所困2017-06-26 11:00:15

    gourl() 関数は前で呼び出すことはできませんが、Ajax ロジックの途中に配置し、if ロジックの後に else{gourl();}
    を追加する必要があります。 リーリー

    返事
    0
  • 学习ing

    学习ing2017-06-26 11:00:15

    質問者のコードは次のように理解できます:

    リーリー

    コード内に 2 つの連続した location.href がある場合、後続のジャンプが実行されます。この質問の対象者は自分でそれを試すことができます。

    さらに、ajax は非同期であるため、サブジェクトは、success にも if(!is_success)写到ajax中的error中去,或者写到success中的else判断中,否则无论ajax是否成功,都会跳转。gourl() を書き込む必要があります。

    さらに、このように ajax を直接使用すると、クロスドメイン エラーが発生します。クロスドメインの問題を解決するには、プロキシまたは他の方法を使用することをお勧めします。

    返事
    0
  • ringa_lee

    ringa_lee2017-06-26 11:00:15

    携帯電話のコード、これってどういうことですか?

    リーリー

    主に jQ の Promise を使用し、すべて非同期で記述され、成功した Ajax のコールバックはすべて Deferred の Done に配置され (複数ある場合は配列として記述することもできます)、その後、Ajax の Done で直接ステータスを与えるだけです。

    返事
    0
  • 某草草

    某草草2017-06-26 11:00:15

    コールバック判定にgetDatagourl有执行的关系,要么把gourlを配置しているため、非同期での使用に適しています。
    被写体とシンクロしていれば大丈夫

    リーリー

    ここで Gourl を直接制御して実行できますか?

    返事
    0
  • 三叔

    三叔2017-06-26 11:00:15

    コードロジックに問題がある可能性があります。Ajax は非同期です。 gourl(); この関数はその場所で呼び出すべきではありません。これは、ajax リクエストの成功または失敗のコールバックで呼び出すことができます。
    リクエストを見ると、正常に呼び出されるはずです。

    返事
    0
  • キャンセル返事