37946


jQuery.get()の書き方について質問させてください。  
第１引数に「URL」(パス)を書くと思いますが、  
この場合パラメータ付きのURLを書くことは不可能なのでしょうか？

①$.get( "XXX.zip", function( data ) {  
} , );  
この場合は、function内に処理が入ります。

②$.get( "<http://XXXServlet/>" + "?Id=" + Id, function( data ) {  
} , );  
このようなパラメータ付きのアドレスを入力した場合、  
function内に処理が入りません。  
なお上記URLをブラウザのアドレス欄に入力した場合、  
①の第１引数で指定したファイルのダウンロードが始まります。

後続処理のfunction内で受取ったファイルを元に処理したいのですが、  
肝心の受取部分で現在躓いています。

【参考】jQuery公式サイト  
<https://api.jquery.com/jquery.get/>


CC BY-SA 3.0
2017-09-14T14:17:21.630
37942
2017-09-15T21:52:21.370
2017-09-14T21:43:42.830
24854
24854
question
javascript jquery
jQuery.get()の第１引数について


> このようなパラメータ付きのアドレスを入力した場合、function内に処理が入りません。

`success`コールバックが呼ばれない以上、エラーが発生していると考えるのか自然です。  
`jQuery.get()`に限らず、常にエラー処理を行うべきです。

またデバッグも行うべきです。今回の`jQuery.get()`であれば開発者ツールなどで、どのようなリクエストが行われ、どのようなレスポンスが得られているのか確認できるはずです。

* * *

コメントより

> サーブレットが実行されて「200」の結果が返ってきた。 ②コンソールタブにエラーに関する情報は出力されていない。

[jquery.getのページ](https://api.jquery.com/jquery.get/#jqxhr-
object)には`fail`メソッドが記載されていますが、あくまでもエラー処理を行わず、質問を通じて解決策を探る方針でしょうか？
そうであればもっと情報を開示すべきです。

`"XXX.zip"`が動作するのに対し`"example.jp:7777/‌​XXXXServlet/xxxx.zip‌​"`が動作しないとすればAdditional
Notesに書かれている

>   * Due to browser security restrictions, most "Ajax" requests are subject
> to the [same origin
> policy](http://en.wikipedia.org/wiki/Same_origin_policy); the request can
> not successfully retrieve data from a different domain, subdomain, port, or
> protocol.
>

の制約を受けている可能性も考えられますが、その場合、多くのブラウザーではコンソールにエラーメッセージが表示されます。表示されないとしたら、エラーを非表示にしている等の確認方法が間違っているかブラウザー依存の問題です。とりあえず使用されているブラウザーやアクセス先のアドレスを開示してください。

same origin policyについては[HTTP アクセス制御
(CORS)](https://developer.mozilla.org/ja/docs/Web/HTTP/HTTP_access_control)も参照してください。


CC BY-SA 3.0
2017-09-14T23:41:41.293
37946
2017-09-15T21:52:21.370
2017-09-15T21:52:21.370
4236
4236
37942
answer