Tôi đang làm việc trên một ứng dụng Rails 4 mới (trên Ruby 2.0.0-p0) khi tôi gặp phải một số vấn đề về mã thông báo xác thực.
Trong khi viết một bộ điều khiển đáp ứng với json (sử dụng respond_to
phương thức lớp), tôi đã có create
hành động tôi bắt đầu có ActionController::InvalidAuthenticityToken
ngoại lệ khi tôi cố gắng tạo một bản ghi bằng cách sử dụng curl
.
Tôi chắc chắn rằng tôi đã thiết lập -H "Content-Type: application/json"
và tôi thiết lập dữ liệu -d "<my data here>"
nhưng vẫn không gặp may.
Tôi đã thử viết cùng một bộ điều khiển bằng Rails 3.2 (trên Ruby 1.9.3) và tôi không gặp vấn đề gì về tính xác thực của mã thông báo. Tôi đã tìm kiếm xung quanh và tôi thấy rằng có một số thay đổi với mã thông báo xác thực trong Rails 4. Từ những gì tôi hiểu, chúng không còn được tự động chèn vào biểu mẫu nữa? Tôi cho rằng điều này bằng cách nào đó ảnh hưởng đến các loại nội dung không phải HTML.
Có cách nào để khắc phục điều này mà không phải yêu cầu biểu mẫu HTML, lấy mã thông báo xác thực, sau đó thực hiện một yêu cầu khác với mã thông báo đó không? Hay tôi hoàn toàn thiếu một cái gì đó hoàn toàn rõ ràng?
Chỉnh sửa: Tôi vừa thử tạo một bản ghi mới trong ứng dụng Rails 4 mới bằng cách sử dụng một giàn giáo mà không thay đổi bất cứ điều gì và tôi đang gặp vấn đề tương tự vì vậy tôi đoán đó không phải là điều tôi đã làm.