Vui lòng đọc lại các liên kết đến các cuộc thảo luận cũ hơn, được cung cấp để giúp bạn. Việc sử dụng biến phiên thay vì tham số đầu vào sẽ mang đến những hạn chế khác cho giải pháp của bạn, chẳng hạn như một người dùng không dễ dàng mở nhiều phiên bản đồng thời của cùng một trang với dữ liệu khác nhau
Trân trọng,
Đa-ni-ên
Trong bài viết này, chúng ta sẽ thấy cơ chế mã hóa/giải mã URL bằng AngularJS, cùng với việc biết các phương thức khác nhau có sẵn để hoàn thành nhiệm vụ nhất định và sẽ hiểu nó thông qua hình minh họa. Một URL chỉ định một tài nguyên và giao thức truy cập của nó
Mã hóa URL. Mã hóa URL là một cách để dịch các ký tự không in được hoặc dành riêng ở định dạng được chấp nhận phổ biến bởi các trình duyệt web và máy chủ web, nơi thông tin được mã hóa có thể được triển khai cho Bộ định vị tài nguyên đồng nhất [URL], Tên tài nguyên đồng nhất [URN], Mã định danh tài nguyên đồng nhất . Ký tự được chọn trong URL có thể bị xóa bằng nhiều bộ ba ký tự, chứa ký tự phần trăm và hai chữ số thập lục phân.
Tiếp cận. Cách tiếp cận là sử dụng phương thức decodeURIComponent[] để giải mã URL. Trong ví dụ đầu tiên, URL[‘https%3A%2F%2Fide. chuyên viên máy tính. org%2Ftryit. php’] được giải mã và trong ví dụ thứ hai, URL[‘https%3A%2F%2Fwww. chuyên viên máy tính. org’] được giải mã
Mã hóa và giải mã URI và các thành phần URI là một nhiệm vụ thông thường trong quá trình phát triển web trong khi thực hiện yêu cầu GET tới API với các tham số truy vấn. Nhiều lần xây dựng một chuỗi URL với các tham số truy vấn và để hiểu nó, máy chủ phản hồi cần giải mã URL này. Trình duyệt tự động mã hóa URL i. e. nó chuyển đổi một số ký tự đặc biệt thành các ký tự dành riêng khác và sau đó thực hiện yêu cầu. ví dụ. Ký tự khoảng trắng ” ” được chuyển đổi thành + hoặc %20
Thí dụ
- mở www. Google. com và viết truy vấn tìm kiếm “geeks for geeks”
- Sau khi kết quả tìm kiếm xuất hiện, hãy quan sát thanh URL của trình duyệt. URL của trình duyệt sẽ bao gồm %20 hoặc dấu + thay cho khoảng trắng
- URL sẽ được hiển thị giống như. https. //www. Google. com/search?q=geeks%20for%20geeks hoặc https. //www. Google. com/search?q=geeks+for+geeks
Ghi chú. Trình duyệt đã tự động chuyển đổi khoảng trắng thành dấu + hoặc %20
Có nhiều ký tự đặc biệt khác và chuyển đổi từng ký tự bằng mã cứng sẽ rất tẻ nhạt. JavaScript cung cấp các chức năng sau để thực hiện tác vụ này
Mã hóa một URL. Mã hóa trong Javascript có thể đạt được bằng cách sử dụng
- hàm encodeURI
- tẩu thoát[]
Hàm mã hóa JavaScriptURI. Hàm encodeURI[] được sử dụng để mã hóa URI hoàn chỉnh. Hàm này mã hóa ký tự đặc biệt ngoại trừ [, /?. @ & = + $ #] ký tự
cú pháp
encodeURI[ complete_uri_string ]
Javascript
//www.google.com/search?q=geeks%20for%20geeks2
//www.google.com/search?q=geeks%20for%20geeks3_______1_______4
//www.google.com/search?q=geeks%20for%20geeks5
//www.google.com/search?q=geeks%20for%20geeks6
//www.google.com/search?q=geeks%20for%20geeks3_______1_______8
//www.google.com/search?q=geeks%20for%20geeks3_______9_______0
encodeURIComponent[ uri_string_component ]1
đầu ra
//www.google.com/search?q=geeks%20for%20geeks
JavaScript encodeURIComponent[] Hàm. Hàm encodeURIComponent[] được sử dụng để mã hóa một số phần hoặc thành phần của URI. Chức năng này mã hóa các ký tự đặc biệt. Ngoài ra, nó mã hóa các ký tự sau. , / ?. @ & = + $ #
cú pháp
encodeURIComponent[ uri_string_component ]
đầu ra
geeks%20for%20geeks
Sự khác biệt encodeURIComponenet và encodeURI
encodeURIComponentencodeURIDefinitionHàm encodeURIComponent[] được sử dụng để mã hóa một số phần hoặc thành phần của URIHàm encodeURI[] được sử dụng để mã hóa URI hoàn chỉnh. SyntaxencodeURIComponent[ uri_string_component ]encodeURI[ Complete_uri_string ] Mã hóa ký tự đặc biệt Hàm này mã hóa các ký tự đặc biệt. Ngoài ra, nó mã hóa các ký tự sau. , / ?. @ & = + $ # Hàm này mã hóa ký tự đặc biệt ngoại trừ [, / ?. @ & = + $ #] ký tựHàm JavaScript escape[]. Hàm này lấy một chuỗi làm tham số duy nhất & mã hóa chuỗi có thể được truyền qua mạng máy tính hỗ trợ các ký tự ASCII. Mã hóa là quá trình chuyển văn bản thuần túy thành bản mã
cú pháp
escape[ string ]
Ghi chú. Hàm escape[] chỉ mã hóa các ký tự đặc biệt, hàm này không được dùng nữa
ngoại lệ. @ – +. / * _
Javascript
//www.google.com/search?q=geeks%20for%20geeks2
//www.google.com/search?q=geeks%20for%20geeks3_______1_______4
//www.google.com/search?q=geeks%20for%20geeks5
//www.google.com/search?q=geeks%20for%20geeks6
//www.google.com/search?q=geeks%20for%20geeks3_______1_______8
encodeURIComponent[ uri_string_component ]9
//www.google.com/search?q=geeks%20for%20geeks3_______9_______0
//www.google.com/search?q=geeks%20for%20geeks3_______13_______3
geeks%20for%20geeks4
geeks%20for%20geeks5
geeks%20for%20geeks6
encodeURIComponent[ uri_string_component ]1
đầu ra
//www.google.com/search?q=geeks%20for%20geeks https%3A//www.google.com/search%3Fq%3Dgeeks%20for%20geeks
Giải mã một URL. Giải mã trong Javascript có thể đạt được bằng cách sử dụng
- hàm giải mãURI[]
- hàm unescape[]
Hàm giải mã JavaScriptURI[]. Hàm decodeURI[] được sử dụng để giải mã URI được tạo bởi encodeURI[]
cú pháp
decodeURI[ complete_encoded_uri_string ]
Thí dụ. Ví dụ này mô tả hàm decodeURI[] của Javascript
Javascript
//www.google.com/search?q=geeks%20for%20geeks2
//www.google.com/search?q=geeks%20for%20geeks3_______1_______4
escape[ string ]1
//www.google.com/search?q=geeks%20for%20geeks6
//www.google.com/search?q=geeks%20for%20geeks3_______14_______4
//www.google.com/search?q=geeks%20for%20geeks3_______14_______6
encodeURIComponent[ uri_string_component ]1
đầu ra
//www.google.com/search?q=geeks for geeks
Hàm giải mã JavaScriptURIComponent[]. Hàm decodeURIComponent[] được sử dụng để giải mã một số phần hoặc thành phần của URI được tạo bởi encodeURIComponent[]
cú pháp
decodeURIComponent[ encoded_uri_string_component ]
Thí dụ. Ví dụ này mô tả decodeURIComponent[] của Javascript
Javascript
//www.google.com/search?q=geeks%20for%20geeks2
//www.google.com/search?q=geeks%20for%20geeks3_______31_______0
//www.google.com/search?q=geeks%20for%20geeks https%3A//www.google.com/search%3Fq%3Dgeeks%20for%20geeks1
//www.google.com/search?q=geeks%20for%20geeks3_______31_______3
//www.google.com/search?q=geeks%20for%20geeks3_______31_______5
encodeURIComponent[ uri_string_component ]1
đầu ra
geeks for geeks
Sự khác biệt giải mãURIThành phần và giải mãURI
decodeURIComponentdecodeURIDefinitionHàm decodeURIComponent[] được sử dụng để giải mã một số phần hoặc thành phần của URI được tạo bởi encodeURIComponent[]. Giải mã trong Javascript có thể đạt được bằng hàm decodeURI. Cú phápdecodeURIComponent[ encoded_uri_string_component ]decodeURI[ Complete_encoded_uri_string ]Mã hóa ký tự đặc biệt Cần chuỗi encodeURIComponent[url] để có thể giải mã các ký tự này. Nó nhận chuỗi encodeURI[url] nên không thể giải mã các ký tự [, / ?. @ & = + $ #]Ví dụdecodeURIComponent[“%41”] Nó trả về “A”
decodeURIComponent[“%26”]. Nó trở lại "&"
giải mãURI[“%41”]. Nó trả về “A”
giải mãURI[“%26”]. Nó trả về “%26”
Hàm JavaScript unescape []. Hàm này lấy một chuỗi làm tham số duy nhất và sử dụng nó để giải mã chuỗi đó được mã hóa bởi hàm escape[]. Chuỗi thập lục phân trong chuỗi được thay thế bằng các ký tự mà chúng đại diện khi được giải mã thông qua hàm unescape[]