2017-06-20 13 views
0

後、私はページのリロード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); 

      } 
     }); 

をPHPにするFORMDATAを渡すために、単純なコールAJAXを持っていますが、それがこれを行う後、それは私がそれを止めるんどのようにページをリロードしますか?

そのは、そのクリックされた任意のボタンやリンクがあり、これが唯一のGoogleのクロム

+2

ページの残りの部分はリロードされていますか?あなたのコードは$ .ajax呼び出しの終わりに停止しますが、少なくとも2つ以上のブロックが切断されています。 – mkaatman

+0

あなたのアップロードボタンの入力ボタンを使用する場合は、フォームのためのデフォルトの投稿を防ぐ必要があります – Bast

+0

@Bast私はそれを持っていません – props

答えて

0

で起こることが起こった一つ奇妙なこと?

このコードから、アップロードフォームがあり、入力値が変更されると自動的に情報をajax経由で送信すると思います。

しかし、実際に入力を変更してから(アップロードボタンのように)ボタンをクリックすると、入力が変更されてからこのコードが最初に呼び出され、ボタンが表示されますが、キャプチャされていないので、デフォルトでは設定されていない場合はページを再ロードするだけのハイパーリンクがロードされます。

一般的に、人々は '#'へのデフォルトのハイパーリンクを設定します。つまり、ページが 'locahost:8000 /#'のようなものにリロードされた場合、それはおそらく起きていることです。

+0

で起こったことです。入力が変わると、自動的に情報がajax経由で送信されます。 Google Chromeの唯一のリフレッシュであることに気づいたのは、その非常に無制限の – props

+0

これを追加してみてください:e.stopPropagation()@props –

+0

それは役に立ちません – props