Có bất kỳ hạn chế chính thức nào về việc ký tự nào được phép trong tên thông số URL không?URL HTTP - các ký tự được phép trong tên thông số
Tôi đã đọc RFC3986 ("Mã định danh tài nguyên đồng nhất (URI): Cú pháp chung") nhưng không có kết luận dứt khoát.
Tôi biết có những hạn chế thực tế, nhưng nó sẽ thực sự bị cấm làm điều gì đó như:
param with\funny<chars>=some_value
miễn là tôi thoát khỏi nó một cách chính xác:
ký tựparam%20with%1cfunny%3cchars%3e=some_value
Đó chính xác là lý do tôi đã hỏi ... http://stackoverflow.com/questions/814613/how-to-read-data-from-url-using-javascript - Tôi đoán câu trả lời của tôi sẽ cần sửa chữa lớn để làm cho nó chính xác trong các tình huống bất thường. – Tomalak
Ah, điều đó làm phức tạp tình hình một cách đáng kể. Đặc biệt khi sử dụng '&' làm dấu phân cách chỉ là một quy ước; một số khác có thể được sử dụng thay thế, ví dụ: ',' và ';' thường được sử dụng khá nhiều. Ngoài ra, nhiều công cụ máy chủ (PHP, Rails,…) hỗ trợ các đối số lồng nhau, vì vậy đây sẽ là một URI hợp pháp với truy vấn: http://example.com/?a=b;c[1]=x;c[2] = y… Rất nhiều ứng dụng web thực sự sử dụng ký hiệu truy vấn này cho dữ liệu biểu mẫu (tùy chọn, hộp kiểm ...) để nhận dữ liệu giống mảng. –
Vì vậy, tôi đoán nó tóm tắt "không có chức năng chính xác nào để lấy tham số ra khỏi URL" - trừ khi bạn chuẩn bị chấp nhận rằng "c [1] = x" là một quy ước phía máy chủ và tham số bạn đang tìm kiếm là * trên thực tế * được gọi là "c [1]" trên máy khách (điều này sẽ đúng về mặt thực tế, nhưng đến kỳ lạ đối với những người quen với lập trình phía máy chủ ...). – Tomalak