2017-06-20 113 views
0

後,我有一個簡單的調用Ajax來傳遞一個FORMDATA到PHP頁面重載Ajax調用

Ajax代碼

$('#upload').on('change', function (e) { 
    e.preventDefault(); 
    $('#texto').val($(this).val()); 
    if ($('#lefectuado').css('display') === 'block') { 

     var file_data = $('#upload').prop('files')[0]; 
     var form_data = new FormData(); 
     form_data.append('file', file_data); 

     var session; 
     $.ajax({ 
      url: "http://localhost/sitePAW/exam.php", 
      type: "post", 
      cache: false, 
      contentType: false, 
      processData: false, 
      data: form_data, 
      success: function (text) { 
       session = JSON.parse(text); 

       $("#Titulo").val(session.Title); 
       $("#Autor").val(session.Creator); 
       $("#Resumo").val(session.Description); 
       $("#Conteudo").val(session.Subject); 
       $("#Pl").val(session.Keywords); 

      } 
     }); 

但它這一點,重新加載頁面我如何阻止它之後?

,其發生的,這只是發生在谷歌瀏覽器

+2

代碼的其餘部分與頁面重新加載在哪裏?你的代碼在$ .ajax調用結束時停止,但至少有兩個塊被截斷。 – mkaatman

+0

如果你使用輸入按鈕作爲你的上傳按鈕,你需要防止默認的提交也爲 – Bast

+0

@Bast我沒有那 – props

回答

0

是否有任何按鈕或鏈接被點擊一個奇怪的事情?

從這段代碼我猜你有一個上傳表單,當輸入值改變時,你自動通過ajax發送信息。

但是,如果你實際上改變了輸入然後點擊了一個按鈕(比如上傳按鈕),那麼這個代碼將會首先被調用,因爲輸入改變了,然後點擊一個「點擊」事件就會關閉按鈕,但它沒有被捕獲,所以它只是加載一些超鏈接,默認情況下,如果沒有設置只是重新加載頁面。

通常人們將默認超鏈接設置爲'#',所以如果頁面重新加載到'locahost:8000 /#'之類的東西,那麼可能是發生了什麼事情。

+0

它確切,當輸入改變時,我自動通過ajax發送信息。有一件事我注意到它的唯一刷新在谷歌鉻,其非常不確定 – props

+0

嘗試添加此:e.stopPropagation()@props –

+0

它不會幫助 – props