Có thể vấn đề như vậy không phải là mới, nhưng tôi không tìm thấy bất cứ điều gì tương tự. Tôi có mã jQuery như:
$.ajax({
url : ('/people/'+id),
type : 'DELETE',
dataType : 'json',
success : function(e) {
table.getItems(currentPage);
}
});
Rails My điều khiển trông như thế này:
def destroy
@person = Person.find(params[:id])
@person.destroy
respond_to do |format|
format.html { redirect_to(people_url) }
format.json { render :json => @person, :status => :ok }
end
end
này đang làm việc.
Nhưng khi tôi sử dụng sau (như được tạo ra bởi tiêu chuẩn), gọi lại success
không được gọi là:
def destroy
@person = Person.find(params[:id])
@person.destroy
respond_to do |format|
format.html { redirect_to(people_url) }
format.json { head :ok }
end
end
Tested dưới rails 3.0.3
, jQuery 1.4.2
và Firefox 3.6.13
.
Firebug cho biết, truy vấn đó được kích hoạt và trả về 200 OK trong cả hai trường hợp, mục cũng sẽ bị xóa trong cả hai trường hợp. Nhưng trong trường hợp thứ hai gọi lại không được gọi.
Có sự khác biệt đáng kể trong REST và có cách nào để sử dụng jQuery bằng cách sử dụng bộ điều khiển giàn giáo không?
Cả hai yêu cầu đều trả về JSON hợp lệ không? Bạn có thể sniff với Charles hoặc nhấn chúng bằng tay với curl và xem những gì trở lại? –
có một trích dẫn bị thiếu trong url của bạn, .. chỉ trong trường hợp. – jAndy
thiếu qoute xuất hiện khi tôi chuẩn bị mã cho một câu hỏi :) – sandrew