Javascript ajax请求时对JS变量的JSON响应
我正在尝试上载具有动态名称的文件,并将这些动态名称取回 具体来说,我有两个页面Javascript ajax请求时对JS变量的JSON响应,javascript,jquery,json,ajax,response,Javascript,Jquery,Json,Ajax,Response,我正在尝试上载具有动态名称的文件,并将这些动态名称取回 具体来说,我有两个页面form.php和upload.php。当按下form.php上的上载按钮时,请求被发送到upload.php,其中2个文件(DLpath和PhotoIDPath)以动态名称上载到服务器,例如: DLpath=documents/2016113022311i8hgn0hzjt276415832.png 及 PhotoIDPath=documents/2016113022311ssrqcyibkkalock.png 它工
form.php
和upload.php
。当按下form.php
上的上载按钮时,请求被发送到upload.php
,其中2个文件(DLpath和PhotoIDPath)以动态名称上载到服务器,例如:
DLpath=documents/2016113022311i8hgn0hzjt276415832.png
及
PhotoIDPath=documents/2016113022311ssrqcyibkkalock.png
它工作得很好。然后在upload.php
上,我将这些文件名编码为JSON数组,即
$response = array ('DLpath'=>$Dlpath ,'PhotoIDPath'=>$PhotoIDPath);
echo json_encode($response);
firebug快照是:
我想在var jsDlpath
中获取DLpath,在var jsPhotoIDPath
我的代码(不起作用)是:
complete: function(response)
{
var jsDlpath=response.DLpath;
var jsPhotoIDPath=response.PhotoIDPath;
alert(jsDlpath+" - "+jsPhotoIDPath)
}
和警报显示:
未定义-未定义
如果您能帮助我在js变量中对这些值进行gwt,我将非常感谢您。因为您在服务器端对响应进行编码,您应该在js端对其进行解析,您可以使用:
success: function(response)
{
var response = $.parseJson(response);
//if $.parseJson dont work, use JSON.parse
var jsDlpath=response.DLpath;
var jsPhotoIDPath=response.PhotoIDPath;
alert(jsDlpath+" - "+jsPhotoIDPath)
}
注意:使用success/done
回调而不是complete
希望这有帮助。如果在纯javascript中运行,您会发现有两个响应属性:responseText和responseXML。您可能想要:
var data = JSON.parse(response.responseText);
一个完整的示例,使用curl from(但jquery也可以)获取Github上的开放问题:
curl('https://api.github.com/repos/gchq/CyberChef/issues?state=open')
.then((res) => JSON.parse(res.responseText))
.then((data) => console.log(data))
您是否分析了
响应
。。尝试登录响应
,如果是字符串。。使用JSON.parse
将其解析为JSON对象
您在响应中收到了什么?你能在这里发帖吗?我想你应该成功。没有完整的console.log(response)
显示什么?当我尝试时:var obj=JSON.parse(response);它给出错误“SyntaxError:JSON.parse:JSON数据第1行第2列的意外字符”和$(“#returned”).html(response.responseText);正在给出{“DLpath”:“documents\/20161201000303tHD2cxzz0u276415832.png”,“PhotoIDPath”:“documents\/20161201000303zged1odeolock.png”}