Javascript 如何从ajax响应中解码url?
在Javascript 如何从ajax响应中解码url?,javascript,jquery,html,ecmascript-6,webpage,Javascript,Jquery,Html,Ecmascript 6,Webpage,在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.ph
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);
}
})
控制台日志(i)的当前结果:
https://example.com/?id\u003dg596c2f91a67e518\u0026itag\u003d18\u0026source\u003dtest
控制台日志(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”;
log(unescape(JSON.stringify(i))
当我将url直接放在变量i=
上时,它工作,但当我做变量i=data
时它不工作,但是数据是什么?数据的值是什么?console.log(数据)
显示什么?与console.log(i)相同代码>,用你的代码我得到了双反斜杠https://example.com/?id\\u003dg596c2f91a67e518\\u0026itag\u003d18\\u0026source\\u003dtest
那么为什么console.log(i)
显示对console.log(data)
的不同响应?