JQUERY .load не работает с window.местоположение в Firefox

#php #javascript #jquery #sql

#php #javascript #jquery #sql

Вопрос:

Вот мой код

 $("#cancel").click(function(){
    $("#destroy").load("../../ajax/destroyroom.ajax.php");
    window.location = "game.php";
})
  

Я попробовал это в Chrome, и это работает

цель destroyroom.ajax.php чтобы удалить определенную запись в базе данных, я загружаю ее в DIV, чтобы она удалила запись, а затем она будет перенаправлена на другую страницу с использованием окна.местоположение, но .функция загрузки не работает в fire, она не удалила запись в базе данных.

есть идеи и советы?

Спасибо!

Комментарии:

1. Вы получаете какие-либо ошибки в консоли или firebug?

Ответ №1:

Попробуйте это вместо этого (непроверено):

 $("#cancel").click(function(){
    $("#destroy").load("../../ajax/destroyroom.ajax.php", function() {
        window.location = "game.php";
    });        
})
  

Это перенаправит пользователя после завершения загрузки.

Редактировать: Также попробуйте указать load() функции полный путь к вашему php-файлу. например. example.org/ajax/destroyroom.ajax.php

Комментарии:

1. Что это было, мой пример кода или подсказка с полным путем? Я просто спрашиваю о других.

2. 1 для быстрого решения. обратите внимание, что @OP window.location не может быть установлен непосредственно во всех браузерах.

Ответ №2:

Во-первых, вы должны использовать:

 window.location.href = "game.php";
  

чтобы перенаправление работало во всех браузерах.

2-й вызов перенаправления в полном обработчике:

 $("#cancel").click(function(){
    $("#destroy").load("../../ajax/destroyroom.ajax.php", function() {
        window.location.href = "game.php";
    });        
})
  

Если вы вызываете его напрямую, после вызова ajax, это может быть нарушено, поскольку перенаправление будет выполнено непосредственно после вызова ajax.

3-й: вызов ajax может быть кэширован. Вы можете отключить кэш глобально или напрямую с помощью $.ajax() и установить опцию cache:false вместо load() .