2014-08-28 18 views
6

Tôi đang cố gắng để phát hiện xem yêu cầu là XHR hoặc không ở ApplicationController bằng cách sử dụngRails request.xhr? trả về 0

request.xhr? 

Nó luôn luôn trả về 0.

Nhưng tiêu đề nói khác;

request.headers["X-Requested-With"] ==> "XMLHttpRequest" 
@_env['HTTP_X_REQUESTED_WITH'] ==> "XMLHttpRequest" 

Tôi đang thiếu gì?

phiên bản là Rails 4.0.0

+0

Bạn gửi yêu cầu bằng cách nào? – zishe

+0

@ zishe nó là một yêu cầu DELETE từ xa. – beydogan

Trả lời

9

request.xhr? luôn trả Object hoặc nil, không true hoặc false, vì nó dựa trên mô hình regexp phù hợp (xem here).

Trong Ruby, bất kỳ giá trị nào khác ngoài falsenil là giá trị trung thực (như là 0 được trả lại bởi request.xhr?), vì vậy phản hồi là chính xác.