戯言

つらつらと気づいたことを書いていきます。人狼とか。

スポンサーサイト


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

AngularJSのhttpリクエストに、固有のヘッダを付与する方法


X-Requested-By: true というヘッダを付与する例です。

個別の通信ごとにヘッダを付与する方法
$http({
	method: "POST", 
	url: "../resource/xxxdata", 
	data: detail
	headers: { "X-Requested-By": "true" } 
})

全POST通信に共通して付与したい場合は、モジュールを使用します。
module = angular.module('xxxxApp', []);
module.config(['$httpProvider', function ($httpProvider) {
	$httpProvider.defaults.headers.post["X-Requested-By"] = "true";
}
]);
同じ働きをするメソッドが、GET や PUT でも使えましたが、DELETEでは使えなかった…。
用意されていないのかな?





スポンサーサイト

CSSで変数が使えれば便利なのにと思ったことはありませんか?


CSSで、同じ色やフォントや幅などを何度も書いてしまって、冗長になってることが面倒に感じることってありませんか?
div.header{
	color: blue;
	background-color: white;
}
div.main{
	color: blue;
	background-color: white;
}
div.footer{
	color: blue;
	background-color: white;
}

LESSを使えば、これを、

@main-fg-color:blue;
@main-bg-color:white;
div.header{
	color: @main-fg-color;
	background-color: @main-bg-color;
}
div.main{
	color: @main-fg-color;
	background-color: @main-bg-color;
}
div.footer{
	color: @main-fg-color;
	background-color: @main-bg-color;
}
のように書けます。色や幅、フォントなどの設定を一元化できるので、作成やメンテの効率が上がります。

カラーは、「指定%だけ明るくする」などの設定もできるので、私のような色音痴な人には大変助かります。

また、LESSファイルをブラウザに認識させるためには、専用のjavascriptを読みこませることで可能です。javascriptを利用できない場合は、LESSファイルをCSSファイルに変換して設置します。LESSファイルを修正したら自動的にCSSに変換して、指定フォルダに格納してくれるソフト(Winlessなど)もあるので、これを常駐させておけば、デザイン編集中もLESSを弄っていることを意識することなく、普段と変わらず作業ができます。

LESSの触りだけですが、使いたくなったと思いませんか?



Jerseyでブラウザにファイルをダウンロードさせる方法


リンクをクリックしたら、(ページ遷移するのではなく)ファイルをダウンロードさせる方法です。HTTPの仕組みの中で、HTTPヘッダーを設定しているだけなので、Jerseyに限った方法ではありません。私の作ったコードがJerseyを利用しているだけです。Jerseyではダウンロード機能を作ることも多いと思いますので、ご参考まで。

@GET()
@Path("/data")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response download(){
	String data = “あいうえお”;
	return Response.status(Status.OK)
		.entity(data)
		.header("Content-disposition", "attachment; filename=data.txt")	
		.build();
}

HTTPのレスポンスヘッダを付与しただけです。
「あいうえお」と書かれたファイルを、data.txtという名前でダウンロードします。

ResponseBuilder#entity()で、ファイルの中身を指定してるわけですが、ここの引数はString型でなくてもOKです(仕様はObject型です)。特定の文字コードのbyte配列を渡してあげれば、文字コードを指定してファイルをダウンロードさせることもできます。InputStreamをそのまま引数にとることもできました。

なお、保存or開くのダイアログが出るか、直接ダウンロードとなるかは、ブラウザの実装に依存するようです。





上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。