cuốn sách gpt4 ai đã làm

ruby-on-rails - URI::InvalidURIError(URI chỉ có thể là ascii)

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 17:43:14 hai mươi bốn 4
mua khóa gpt4 Nike

Tôi có một ứng dụng Rails 3.2 cũ và chẳng hạn như khi tôi cố gắng sử dụng các ký tự không phải mã ascii; example.com/city/bergstraße Sau đó tôi nhận được lỗi sau:

/Users/user/.rvm/rubies/ruby-2.2.5/lib/ruby/2.2.0/uri/rfc3986_parser.rb:20:in `split'
/Users/user/.rvm/rubies/ruby-2.2.5/lib/ruby/2.2.0/uri/rfc3986_parser.rb:72:in `parse'
/Users/user/.rvm/rubies/ruby-2.2.5/lib/ruby/2.2.0/uri/common.rb:226:in `parse'
gói hành động (3.1.0) lib/action_dispatch/routing/redirection.rb:91:in `block in redirection_proc'
rack-mount (0.8.3) lib/rack/mount/route_set.rb:152:in `call'
rack-mount (0.8.3) lib/rack/mount/route_set.rb:152:in `chặn cuộc gọi'
...

Vấn đề là tôi gặp lỗi này trước khi truy cập bất kỳ Bộ điều khiển nào, vì vậy tôi đang tự hỏi mình có thể bắt lỗi này ở đâu để phân tích và sửa URL? Cảm ơn.

Tái bút: Trước khi chỉ cho tôi bất kỳ bài đăng nào trước đó, vui lòng xem dấu vết ngăn xếp.

câu trả lời hay nhất

theo RFC 3986 Một URI chỉ có thể chứa một tập hợp con các ký tự ASCII.

Để cung cấp URI hợp lệ, các ký tự không phải ASCII phải được thoát:

irb(main):008:0> URI.parse "example.com/city/#{URI.encode('bergstraße')}"
=> #

Vấn đề là tôi gặp lỗi này trước khi nhấn bất kỳ bộ điều khiển nào, vì vậy tôi chỉ tự hỏi tôi có thể bắt lỗi này ở đâu để phân tích và sửa URL?

Vấn đề là bạn thực sự không nên mắc phải lỗi này. Máy chủ Rails của bạn không chịu trách nhiệm phản hồi các yêu cầu không chính xác hoặc không đúng định dạng.

Mặc dù bạn có thể thử viết một phần mềm trung gian để giải quyết vấn đề này nhưng bạn nên tìm hiểu lý do tại sao máy khách gửi yêu cầu về một URI không hợp lệ.

Nếu chúng bắt nguồn từ ứng dụng của riêng bạn, hãy đảm bảo bạn thoát khỏi cột sên một cách chính xác và không chỉ sử dụng phép nội suy chuỗi để tạo URL. dây đàn đá quý hoặc thân thiện_idAnh ấy có phải là bạn của bạn không?

Về Ruby-on-Rails - URI::InvalidURIError (URI chỉ có thể là ascii), chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/50157965/

hai mươi bốn 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress