Javascript 避免转移”&”;至”&;amp”;
我对URL中的传输“&”到“&”有问题 当我的系统从另一个系统请求API时,我的系统会用新选项卡显示API响应 响应是一个URL,其中包含两个由& URL中的&被传输到&,这会给我的系统带来问题 附加图像中的URL示例 正确的URL应为XXXXXX RID=1182和eid=25 后端代码Javascript 避免转移”&”;至”&;amp”;,javascript,url,encoding,amp-html,Javascript,Url,Encoding,Amp Html,我对URL中的传输“&”到“&”有问题 当我的系统从另一个系统请求API时,我的系统会用新选项卡显示API响应 响应是一个URL,其中包含两个由& URL中的&被传输到&,这会给我的系统带来问题 附加图像中的URL示例 正确的URL应为XXXXXX RID=1182和eid=25 后端代码 def url_with_params(reservation_id) "#{self.url}?rid=#{reservation_id.to_s}&eid=#{self.id.to_s}"
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);
});
$(文档)。在(“单击“,”.dev提交说明协议”,函数()上{
window.open(“,”newwindow“,”宽度='+屏幕宽度+”,高度='+屏幕高度);
});
您必须使用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;
使用ASCII字符集通过Internet发送的URL。检查以下解码选项:“数据来自第三方服务器,如果您的意思是URL是的,它来自第三方。该方可以从他们这边做些什么来避免这种情况吗?我知道我们已经做了类似的事情,但它仍然转换为”&;“从我方还是从第三方?