2015-06-27 2 views
0

У меня есть функция, которую мне нужно отправить с помощью метода POST и после отправки POST обновить страницу. Но каждый раз, когда он спрашивает пользователя «Внимание требует внимания. Вы действительно хотите закрыть эту страницу?». Есть ли способ просто обновить, не спрашивая у пользователя разрешения? Прямо сейчас я использую «window.location = window.location.href;» но он спрашивает пользователя в любом случае.Обновление Javascript без запроса пользователя

 function clickedNew(file){ 
       var http = new XMLHttpRequest(); 
       http.open("POST", "./script.php", true); 
       http.setRequestHeader("Content-type","application/x-www-form-urlencoded;charset=utf-8"); 
       var params = "fileName=" + file + "&fileNum=" + <?php echo $count; ?>; 
       http.send(params); 
       http.onload = function() { 
        window.location = window.location.href; 
       } 
      } 
+0

http://stackoverflow.com/questions/570015/how-do-i- reload-a-page-without-a-postdata-warning-in-javascript – Delgan

+0

Пробовал ответы от этого уже, но он не работает. –

+0

@ AntonioStipić Вы пытались «document.location»? –

ответ

0

Дайте новое свойство вашей функции на первый вызов, как описано в Static variables in JavaScript.

Затем вы можете проверить и предотвратить HTTP POST []:

function clickedNew(file){ 
      if(this.isRefreshing == "undefined") 
      { 
      var http = new XMLHttpRequest(); 
      http.open("POST", "./script.php", true); 
      http.setRequestHeader("Content-type","application/x-www-form-urlencoded;charset=utf-8"); 
      var params = "fileName=" + file + "&fileNum=" + <?php echo $count; ?>; 
      http.send(params); 
      this.isRefreshing = "refreshing"; 
      } 
      else{ 
       this.isRefreshing = "undefined"; // should be able to repeat 
      } 

      http.onload = function() { 
       window.location = window.location.href; 
      } 
     } 

Другие script.js

function instantiateClicked(file){ 
    var insted = new clickedNew(); 
    insted.isRefreshing = "undefined"; 
    insted(file); 
} 
+0

Если я скопирую этот код, он никогда не отправляет сообщение, потому что isRefreshing не объявлен нигде. Должен ли я иметь больше кода или что? –

+0

Да, сначала вам нужно создать экземпляр своей функции, а не просто называть ее. Посмотрите ссылку, которую я предоставил. Вам нужно изменить способ использования вашей функции. – EpiGen

Смежные вопросы