質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel 4

Laravel 4 とはTaylor Otwellによって開発された、オープンソースなPHPwebアプリケーション開発フレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

3回答

680閲覧

JQueryでGetリクエストが走らない

Chandler_Bing

総合スコア673

Laravel 4

Laravel 4 とはTaylor Otwellによって開発された、オープンソースなPHPwebアプリケーション開発フレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2020/07/22 12:13

表題の通りなのですが、GETリクエストが走りません。

下記にソースを提示します。

php

1<a class="com-btn hilited-btn proceed-btn right-icon-btn print-btn" href="{{{ $obj->link_url) }}}" target="_blank" id="{{ $id }}"> 2 <b><span class="wbr">ダウンロード</span> 3</a>

js

1$('#id').on('click', function(event) { 2 event.preventDefault(); 3 if (confirm('ダウンロードしますか')) { 4 console.log(this.href); 5 $.get(this.href); 6 } 7});

処理の流れとしては、ダウンロードボタンを押下して、ポップアップメッセージを表示して、
「OK」を押下すると、ファイルがダウンロードされるという仕組みです。

JSの制御を外すとファイルが正しくダウンロードできること
コンソールに吐き出されたリンクをクリックすると、同じファイル(正しい)がダウンロードできること

は既に確認済です。何かほかに方法があればご教授お願いします。
getのリクエスト方法が悪いのではとふんでいます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

$.getはそもそもダウンロードするための仕組みではないですが
今回の処理はダウンロードが目的なのでしょうか?
であればアンカーなのですからdownload属性をつけるだけで処理できます

投稿2020/07/22 12:25

yambejp

総合スコア114839

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

id="{{ $id }}"となっていますが、jQueryの方は$('#id')で参照しています。$idの中身が'id'でない限り、正しく参照できません。

投稿2020/07/22 12:16

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Chandler_Bing

2020/07/22 12:20

返信ありがとうございます。 その部分はあくまで簡易的に表現致しました。 ソースの参照は合っております。 もし間違えていると、コンソールすら走らないと思います。
maisumakun

2020/07/22 12:22

> getのリクエスト方法が悪いのではとふんでいます。 そうですね、$.getの結果はJavaScriptで受け取る形となります。ブラウザで表示やダウンロードファイルとしての表示はなされません。
Chandler_Bing

2020/07/22 12:24

他に方法はないのでしょうか。 Controllerで、ファイルを生成し、RESPONSEを返すので、 単順にGETでリクエストを返せば問題ないと踏んでおりましたが、、、。
Chandler_Bing

2020/07/22 12:30

上手くいきました。 クリックされた段階で、目的のURLを取得し、そのURLを無理やり押下すれようなソースで機能しました。
guest

0

自己解決

confirmにのソースを下記に変更しました。

js

1location.href = this.href; // 無理やりクリックイベントを発生させる

ありがとうございました。

投稿2020/07/22 12:32

Chandler_Bing

総合スコア673

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問