ドラッグアンドドロップ機能を使用する重いJavaScriptベースのアプリを使用しています。
それはうまくいきます。しかし、動的オブジェクト(他のオブジェクトとまったく同じ属性と変数を持つ)をページに追加すると、ドラッグされますが、ドロップすると、POSTは406を返します。
この呼び出しが行われる前に必要になる可能性のある環境リスナーを再インスタンス化するため、ここで何が起こっているのか完全にはわかりません。私はこれへの呼び出しを分解しました:
.cranbar
動作している既存のオブジェクトはどこにありますか。動的に追加されたものと同じものに切り替えると.foobar
、406が返されます。
attrs = { _method:"put"};
box = $(".cranbar");
$.post(box.attr('data-update_path'), attrs, function(data) {
});
このスニペットはmake_droppable
、オブジェクトがインスタンス化された後、ドラッグアンドドロップを試みる前にロードされるメソッドからのものです。
make_droppable: function(){
$('table#week .day').droppable({
accept: '.job, .task',
hoverClass: 'droppable-hover',
drop: function(e, ui) {
if (confirmOnDrop){
if (!confirm('Are you sure?')) {
if ($('table#week').length > 0) {
draw_weekly_calendar();
}
return false;
}
}
var box = $(ui.draggable);
// var old_container = box.parents('td:first');
var new_cell = $(this);
var new_container = $(this).find('.rel_box');
// add indicator
box.addClass('indicator');
// add box to new container
box.attr('style', 'position: absolute;').appendTo(new_container);
var attrs = null;
if (box.attr('data-object-type') == 'job') {
// update job already on screen
attrs = {
'job[scheduled_on]': new_cell.attr('data-scheduled_on'),
'_method': 'put'
}
}
else if (box.attr('data-object-type') == 'task') {
attrs = {
'task[scheduled_at]': new_cell.attr('data-scheduled_on'),
'_method': 'put'
}
}
if (attrs) {
$.v = attrs;
$.post(box.attr('data-update_path'), attrs, function(data) {
box.removeClass('indicator');
box.attr('data-scheduled_at', new_cell.attr('data-scheduled_on'));
draw_weekly_calendar();
});
}
// nice effect
box.effect('shake', { times: 1, distance: 2 }, 50);
}
});
},
この406のソースを見つけるために私ができることを誰かが知っていますか?
アップデート
これはおそらくそれと多くの関係があります。しかし、私は今ヘッダーを比較しています。
失敗した投稿:
Response Headers
Cache-Control no-cache
Connection Keep-Alive
Content-Length 1
Content-Type text/html; charset=utf-8
Date Mon, 09 Jul 2012 16:11:27 GMT
Server WEBrick/1.3.1 (Ruby/1.9.2/2011-02-18)
Request Headers
Accept text/javascript
Accept-Encoding gzip, deflate
Accept-Language en-us,en;q=0.8,es-es;q=0.5,es;q=0.3
Connection keep-alive
Content-Length 57
Content-Type application/x-www-form-urlencoded; charset=UTF-8
成功した投稿:
Response Headers
Cache-Control max-age=0, private, must-revalidate
Connection Keep-Alive
Content-Length 2024
Content-Type application/json; charset=utf-8
Date Mon, 09 Jul 2012 16:11:35 GMT
Etag "93432c11e3cc55dfec8e0aee7c08bcc1"
Server WEBrick/1.3.1 (Ruby/1.9.2/2011-02-18)
Request Headers
Accept text/javascript
Accept-Encoding gzip, deflate
Accept-Language en-us,en;q=0.8,es-es;q=0.5,es;q=0.3
Connection keep-alive
Content-Length 57
Content-Type application/x-www-form-urlencoded; charset=UTF-8