有人创建了一个网页,从eventbrite中提取事件数据,将其写入SVG,使用Amazon Web服务,并将其保存为PDF以创建传单。
它适用于:www.ilovemylaser.com/fliers.html。
但是,如果我使用'#'在地址栏中,它打破了,所以对于圣地亚哥人来说,我已经取代了#'#'与' No。'。
如果你查看www.admaticonsulting.com/resources/fliers2.html,我已经使用了#2'。如果单击飞行器,您将看到缺少城市,地点名称,时间,状态和邮编。与第一个链接的Thousand Oaks传单相比较。
此行在代码中,我很确定这是问题所在:
var output = "<p><a href=\"h t t p ://ec2-52-42-194-56.us-west-2.compute.amazonaws. com/task.php?date=" + date + "&staddress=" + venue + "&venue=" + ven3 + "&city=" + city + "®ion=" + region + "&postal_code=" + postal_code +"&time="+ time + "\">" + date + " - " + city + "</a><br></p>";
现在我无法发布超过2个链接,但如果您点击任何传单链接,您会看到它会显示一个链接,然后解析为其他链接。
非常确定#正在影响这一点。此外,&#34;已解决的链接中有空格&#34;那些有&#39;#&#39;。那些没有空格的空格没有。
如何使用#并且没有丢失数据?
答案 0 :(得分:1)
您需要使用encodeURIComponent
对每个查询字符串值进行编码:
var output = "<p><a href=\"h t t p ://ec2-52-42-194-56.us-west-2.compute.amazonaws. com/task.php?date=" + encodeURIComponent(date) + "&staddress=" + encodeURIComponent(venue) + "&venue=" + encodeURIComponent(ven3) + "&city=" + encodeURIComponent(city) + "®ion=" + encodeURIComponent(region) + "&postal_code=" + encodeURIComponent(postal_code) +"&time="+ encodeURIComponent(time) + "\">" + date + " - " + city + "</a><br></p>";
答案 1 :(得分:0)
URL中的#开始Fragment Identifier,由浏览器或其他客户端在本地处理;它不包含在发送到服务器的HTTP请求中,因此不能用于服务器上的任何处理。 To include a 'reserved' character as data in a URL you must encode it。请注意,链接为https://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_reserved_characters
,当您点击该链接时,从服务器获取的页面为https://en.wikipedia.org/wiki/Percent-encoding
,然后您的浏览器会定位到Percent-encoding_reserved_characters
的锚标记。