我正在尝试上传带有动态名称的文件并重新获取这些动态名称。
详细说明,我有2页form.php
和upload.php
。在form.php
上按下上传按钮后,请求发送到upload.php
,其中2个文件(DLpath和PhotoIDPath)以动态名称上传到服务器,例如:
DLpath = documents / 20161130232311i8hGn0HzJT276415832.png
并且
PhotoIDPath =文档/ 20161130232311SSRqCyIbKKalock.png
工作正常。然后在upload.php
上,我将这些文件名编码为JSON数组,即
$response = array ('DLpath'=>$Dlpath ,'PhotoIDPath'=>$PhotoIDPath);
echo json_encode($response);
萤火虫快照是:
我希望var jsDlpath
中的DLpath和var jsPhotoIDPath
我的代码(不工作)得到回应是:
complete: function(response)
{
var jsDlpath=response.DLpath;
var jsPhotoIDPath=response.PhotoIDPath;
alert(jsDlpath+" - "+jsPhotoIDPath)
}
警报显示:
undefined - undefine
如果你能帮助我在js变量中gwt这些值,我将非常感谢你。
答案 0 :(得分:1)
由于您在服务器端对response
进行了编码,因此您应该在js方面对其进行解析,您可以使用 $.parsejson()
:
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
回调代替完整。
希望这有帮助。
答案 1 :(得分:0)
如果在纯JavaScript中运行,您会发现有两个响应属性:responseText和responseXML。你可能想要:
var data = JSON.parse(response.responseText);
一个完整的例子,使用来自https://gist.github.com/bitdivine/7ddd943387a4350336dd的curl(但jquery也会很好)在Github上获得未解决的问题:
curl('https://api.github.com/repos/gchq/CyberChef/issues?state=open')
.then((res) => JSON.parse(res.responseText))
.then((data) => console.log(data))