参考サイト
POSTでパラメータを送信する際は、設定が必要
1
2
3
4
5
6
| @testApp.config ($httpProvider) ->
$httpProvider.defaults.transformRequest = (data = {}) ->
$.param(data);
$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'
@
|
そのままPOST送信するとパラメータがJSON文字列?で送信されるらしく、
うまくデータを送れないので通常のForm送信の方式に合わせる必要がある
ただ、 rails で angularjs-rails-resource を使っていると大丈夫な模様
$resourceでPOST or PUT する際のURLパラメータの渡し方。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| url = '/api/action/:id'
model = $resource url, null ,
get: {method: 'GET', isArray: false}
post: {method: 'POST', isArray: false, params: {id: "@id"}
put: {method: 'PUT', isArray: false, params: {id: "@id"}}
delete: {method: 'DELETE', isArray: false}
param =
id: 1
name: 'myName'
model.put param, (res, e) ->
console.log res
|
GET と DELETE は そのままで param の id が action/:id
に反映されるが、
PUT と POST の場合は、モデルのメソッド作成の際に指定しておく必要がある模様
1
2
3
4
5
| model = $resource url, {id: "@id"} ,
get: {method: 'GET', isArray: false}
post: {method: 'POST', isArray: false}
put: {method: 'PUT', isArray: false}
delete: {method: 'DELETE', isArray: false}
|
これでも大丈夫そう。