0

リンク名によると、データを処理し、php スクリプトで処理した後に値を取得したいと考えています。クロムで確認できる限り、ajax関数がキャンセルされていないと私が信じていることを除いて、すべてが機能します。

私はこのようなことをすることができます:

HTML

<a href="test0" class="link">click 0</a>
<a href="test1" class="link">click 1</a>

JS スクリプト:

$(".link").live('click', function(){
       $.ajax({
            type: 'POST',
            url: '/ajax/file.php',
            data: {
                link : $(this).attr('href'),
            },error: function(xhr, error){
                console.debug(xhr); console.debug(error);
            },success: function(data){
                alert(data);
            }
        });
});

開発ツールのスクリーンショット

どうもありがとう。

アップデート:

私がこれを行った理由は、ユーザーの選択に応じて Web サーバーからデータ (ファイル) を取得するためでしたが、この手法ではこれを達成できないことに気付きました。最良のアプローチは、<a href="/download.php?file=myfile&token=asdasdlkjsd" page="_blank">file</a>

次に、サーバー側から、ヘッダーと適切な MIME タイプを使用する必要があります。

ajax でファイルを転送し、ユーザーが開くか、保存するか、閉じるかを決定できる場合は、その方法を知りたいです:)

4

1 に答える 1

0

live()非推奨です。を使用してon()ください。event.preventDefault()さらに、イベントハンドラー内でデフォルトのブラウザーの動作(つまり、hrefに従う)を防ぐ必要があります。

$(document).on('click', '.link', function(event){

  event.preventDefault();

     $.ajax({
          type: 'POST',
          url: '/ajax/file.php',
          data: {
              link : $(this).attr('href'),
          },
          success: function(data){
              alert(data);
          }
      });

});

編集:許してください、修正しました。

于 2013-01-16T17:36:02.353 に答える