Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 避免转移”&”;至”&;amp”;_Javascript_Url_Encoding_Amp Html - Fatal编程技术网

Javascript 避免转移”&”;至”&;amp”;

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}"

我对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}"

 #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“,”宽度='+屏幕宽度+”,高度='+屏幕高度);
});

您必须使用encodeURIComponentdecodeURIComponent方法:

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(/&amp;/g,"&");
window.location=x;

使用ASCII字符集通过Internet发送的URL。检查以下解码选项:“数据来自第三方服务器,如果您的意思是URL是的,它来自第三方。该方可以从他们这边做些什么来避免这种情况吗?我知道我们已经做了类似的事情,但它仍然转换为”&;“从我方还是从第三方?