jQuery: ajax メソッドのヘッダーを変更する
jQuery 1.5 以降であれば headers プロパティでヘッダーを指定することができる。
$.ajax({ url: '/test', type: 'PUT', headers: { 'X-HTTP-Method-Override': 'PUT', 'Content-Type': 'application/json' }, dataType: 'json', data: '{"test": "テスト"}', }).done(function() { console.log('成功'); });
Content-Type のために contentType プロパティも用意されている。複数のヘッダーを指定する場合は、headers プロパティにまとめておいたほうが散らからずにすむだろう。
headers: { 'X-HTTP-Method-Override': 'PUT', }, contentType: 'application/json'
jQuery 1.4 までは beforeSend メソッドを定義し、xhr オブジェクトに直接アクセスする必要があった。
$.ajax({ url: '/test', type: 'PUT', beforeSend: function(xhr) { xhr.setRequestHeader('X-HTTP-Method-Override', 'PUT'); }contentType: 'application/json', dataType: 'json', data: '{"test": "テスト"}', }).done(function() { console.log('成功'); });