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)
的不同响应?