Tôi đang cố gắng gỡ lỗi một vấn đề trong đó Rails không giải mã dữ liệu JSON POST.Yêu cầu JSON đường ray không được phân tích cú pháp chính xác thành thông số bài đăng
Nhật ký máy chủ hiển thị:
2011-12-14T06:44:44+00:00 app[web.2]: Started POST
2011-12-14T06:44:44+00:00 app[web.2]: Processing by PostsController#create as */*
2011-12-14T06:44:44+00:00 app[web.2]: Parameters: {"{\"athlete_id\":\"\",\"known_as\":\"abc\",\"email\":\"[email protected]\",\"result\":\"112233\",\"rx\":false,\"mods\":\"thkjth\",\"notes\":\"\"}"=>nil, "affiliate_id"=>"testaffiliate", "wod_id"=>"12345"}
Lưu ý rằng chuỗi JSON không được phân tích cú pháp - Rails được gán nó như là một then chốt trong việc băm, trỏ đến một giá trị nil. Có ai có bất kỳ ý tưởng trước khi tôi viết một before_filter cố gắng JSON.parse tất cả các phím params?
Tôi không nghĩ rằng điều này là có liên quan vì tôi đang gửi và nhận dữ liệu không sao, nhưng sự cố này xảy ra trong yêu cầu CORS từ IE (sử dụng XDomainRequest).
Tôi thấy rằng làm điều này (trên lân) Tôi cơ thể của yêu cầu bao gồm trong params như là một chìa khóa: '{'theBodyOfRequest' => nil,: controller => users,: action => 'update'}' Tùy thuộc vào trường hợp sử dụng của bạn có thể gây ra sự cố. Vì đó là tham số đầu tiên, tôi đã thêm 'params.shift' để xóa nó. – Peter
@collin, vâng - Dữ liệu tôi đã POST ban đầu là JSON '{: foo =>" bar "}' (đã được xâu chuỗi để gửi) vì vậy các tham số tại bộ điều khiển trông giống như: '{" {\ "foo \" => \ "bar \"} => nil, "điều khiển" => "người dùng" ...} ' – Peter
@Peter, có vẻ như vấn đề ban đầu tôi đã mô tả trong câu hỏi, phải không? Bạn có chắc chắn rằng bộ lọc của bạn đang được chạy? – colllin