2017-06-20 115 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