在token.php
里面我有这个代码:
$url = file_get_contents($urlPost);
preg_match('/\"amplem\":"(.*)\",/', $url, $matches);
echo $matches[1];
这个echo $matches[1]
会打印出这样的网址:
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)));