避免将“&”转换为“&”
Avoiding transfer ”&” to ”&”
我在 URL 中将“&”转换为“&”时遇到问题。
当我的系统从另一个系统请求 API 时,我的系统会在新选项卡中显示 API 响应。
响应是一个 URL,包含两个由 &
分隔的值
URL 中的 & 被转移到 &,它导致我的系统出现问题。
URL 附图中的示例 enter image description here
右边URL应该是xxxxxxrid=1182&eid=25
后端代码
def url_with_params(reservation_id)
"#{self.url}?rid=#{reservation_id.to_s}&eid=#{self.id.to_s}"
#URL ex: https://XXXXXXXXXXXX?rid=1184&eid=1.
end
客户端代码
$(document).on("click", '.dev-submit-instructions-agreement', function(){
window.open("<%= @exam.url_with_params(@reservation.id) %>", 'newwindow', 'width='+screen.width+', height='+screen.height);
});
您必须使用 encodeURIComponent 和 decodeURIComponent 方法:
const encodedURL = encodeURIComponent('https://example.net?id=1182&eid=25');
// "https%3A%2F%2Fexample.net%3Fid%3D1182%26eid%3D25"
恢复初始URL:
const url = decodeURIComponent(encodedURL);
// "https://example.net?id=1182&eid=25"
希望对您有所帮助。
我会尝试 HTML 在服务器端解码,但我假设这是来自第三方服务器的数据。使用 JavaScript,在客户端,您总是可以尝试这样的操作:
x='some data';
x=x.replace(/&/g,"&");
window.location=x;
我在 URL 中将“&”转换为“&”时遇到问题。
当我的系统从另一个系统请求 API 时,我的系统会在新选项卡中显示 API 响应。
响应是一个 URL,包含两个由 &
分隔的值URL 中的 & 被转移到 &,它导致我的系统出现问题。
URL 附图中的示例 enter image description here
右边URL应该是xxxxxxrid=1182&eid=25
后端代码
def url_with_params(reservation_id)
"#{self.url}?rid=#{reservation_id.to_s}&eid=#{self.id.to_s}"
#URL ex: https://XXXXXXXXXXXX?rid=1184&eid=1.
end
客户端代码
$(document).on("click", '.dev-submit-instructions-agreement', function(){
window.open("<%= @exam.url_with_params(@reservation.id) %>", 'newwindow', 'width='+screen.width+', height='+screen.height);
});
您必须使用 encodeURIComponent 和 decodeURIComponent 方法:
const encodedURL = encodeURIComponent('https://example.net?id=1182&eid=25');
// "https%3A%2F%2Fexample.net%3Fid%3D1182%26eid%3D25"
恢复初始URL:
const url = decodeURIComponent(encodedURL);
// "https://example.net?id=1182&eid=25"
希望对您有所帮助。
我会尝试 HTML 在服务器端解码,但我假设这是来自第三方服务器的数据。使用 JavaScript,在客户端,您总是可以尝试这样的操作:
x='some data';
x=x.replace(/&/g,"&");
window.location=x;