在 token.php
里面我有这段代码:
$url = file_get_contents($urlPost);
preg_match('/\"amplem\":"(.*)\",/', $url, $matches);
echo $matches[1];
此echo $matches[1]
将打印出如下所示的 url:
https://example.com/?id\u003dg596c2f91a67e518\u0026itag\u003d18\u0026source\u003dtest
。
在 index.php
上我做了一个 ajax 调用:
$.ajax({
type:'post',
url:siteURL+'/token.php',
data:{token:token},
success:function(data){
var i = decodeURIComponent(data);
console.log(i);
}
})
console.log(i)
的当前结果:
https://example.com/?id\u003dg596c2f91a67e518\u0026itag\u003d18\u0026source\u003dtest
。
console.log(i)
的预期结果:
https://example.com/?id=g596c2f91a67e518&itag=18&source=test
。
编辑 - 如果我将编码后的 url 直接放在 decodeURIComponent();
中,我会得到所需的结果,但它不适用于从 ajax 返回的 url打电话。
最佳答案
将 unescape
与 JSON.stringify
一起使用:
var i = "https://example.com/?id\u003dg596c2f91a67e518\u0026itag\u003d18\u0026source\u003dtest";
console.log(unescape(JSON.stringify(i)));
关于javascript - 如何从ajax响应中解码url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54797755/