ajax提交返回的url因地址符转义导致链接地址无法访问

本文介绍了一种常见的AJAX使用场景下,URL中包含特殊字符“&”时出现的转义问题及解决方案。当网站采用异步方式获取下载链接时,URL中的“&”会被错误地转义为“&”,导致链接失效。文章提供了一个简单的JS代码片段,用于在获取链接后将多余的“amp;”去除,确保URL的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:

为了防止对网站中下载链接信息的抓取,网站中的下载地址的获取换成了通过点击异步获取的方式,其中用到了ajax提交的方式,功能完成后,在返回url地址时发现:如果url链接地址当中含有地址符“&” 会转义为&导致地址无法访问。这是由于& 等字符在XML里,有特殊的意义,所以当AJAX使用xml格式的时候,会自动进行转义。

解决方法:

在获取到链接地址后,运用js替换字符串的amp;为空,保留&即可,如下所示:

$.ajax({
    url:"接收ajax请求的地址",
    data:postdata,
    type:'post',
    cache:false,
    success:function(url){
        url= url.replace(/amp;/g, "");
        w.location = url;
    },
    error: function(){
      w.close();
    }
});

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值