0

Rails 3 アプリに単純な PUT JSON リクエストを作成しようとしています。

$.ajax({type: 'PUT', url: '/controlpanel/custom_forms/1', data: { hello: 'world' }, contentType: 'json'})

どういうわけか、データは受信されparamsず、ID のみが含まれています。サーバー側は次のとおりです。

Started PUT "/controlpanel/custom_forms/1" for 127.0.0.1 at 2012-05-22 23:05:25 -0400
Processing by Controlpanel::CustomFormsController#update as */*
  Parameters: {"id"=>"1"}

私は期待Parametersしている{"id"=>"1", "hello"=>"world"}

リクエストは Chrome で正常に表示されます。

リクエストヘッダー

PUT /controlpanel/custom_forms/1 HTTP/1.1
Host: localhost:3000
Connection: keep-alive
Content-Length: 11
Origin: localhost:3000
X-CSRF-Token: HgGPJmgf0iXlsHtmZrifqFoww/rlzq+hAKb63HbAl8g=
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.46 Safari/536.5
Content-Type: json
Accept: */*
Referer: http://localhost:3000/controlpanel/custom_forms/1/edit?feature_id=1
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: user_credentials=whatever

リクエストペイロード

hello=world

私は何を間違っていますか?

4

1 に答える 1

1

私は2つの間違いを犯していました。まず、だけでなくcontentTypeに設定する必要があります。次に、を手動でシリアル化する必要があります。application/jsonjsondataJSON.stringify({...})

于 2012-05-23T03:26:08.640 に答える