Php AJAX返回后数据未出现
我有一个在表单提交上运行的AJAX调用(使用prevent default停止标准提交):Php AJAX返回后数据未出现,php,javascript,jquery,html,ajax,Php,Javascript,Jquery,Html,Ajax,我有一个在表单提交上运行的AJAX调用(使用prevent default停止标准提交): 在jQuery中使用data.x的脚本到处运行时,返回未定义。知道为什么会发生这种情况以及如何修复它吗?数据是一个包含返回的JSON文本的字符串;它不是一个物体 要解析JSON对象,您有两个选项: 自己调用JSON.parse() 传递数据类型:“json”告诉jQuery AJAX为您解析它 在服务器的响应中设置Content-Type:application/json,以便jQuery知道如何为您解
在jQuery中使用
data.x
的脚本到处运行时,返回未定义。知道为什么会发生这种情况以及如何修复它吗?数据是一个包含返回的JSON文本的字符串;它不是一个物体
要解析JSON对象,您有两个选项:
- 自己调用
JSON.parse()
- 传递
数据类型:“json”
告诉jQuery AJAX为您解析它
- 在服务器的响应中设置
Content-Type:application/json
,以便jQuery知道如何为您解析它
数据
是包含返回的JSON文本的字符串;它不是一个物体
要解析JSON对象,您有两个选项:
- 自己调用
JSON.parse()
- 传递
数据类型:“json”
告诉jQuery AJAX为您解析它
- 在服务器的响应中设置
Content-Type:application/json
,以便jQuery知道如何为您解析它
设置数据类型:“json”并检查!查看此项并设置数据类型。设置数据类型:“json”并检查!查看此项并设置数据类型。尝试添加标题('Content-Type:application/json')请在Firebug控制台(或Chrome inspector控制台)获取一份战利品,您将看到PHP脚本发送的响应。您的PHP脚本中可能有错误,并将“dataType”参数添加到Ajax请求(dataType:'json')。您的意思是使用serializeArray()而不是form.serialize()?尝试添加头('Content-Type:application/json')请在Firebug控制台(或Chrome inspector控制台)获取一份战利品,您将看到PHP脚本发送的响应。您的PHP脚本中可能有错误,并将“dataType”参数添加到Ajax请求(dataType:'json')。您的意思是使用serializeArray()而不是form.serialize()?
var form = $(this);
$.ajax({
type: form.attr('method'),
url: form.attr('action'),
data: form.serialize()
}).done(function(data) {
$('#processingFile').hide();
$('#downloadFile').show();
$('#shareURL').val(data.url);
$('#downloadFile').attr('href', data.url);
$('#aboutFile').html('<b>File URL:</b> ' + data.url + '<br /><b>File Size:</b> ' + data.size + '<br /><b>Time Stamp:</b> ' + data.timestamp + '<br /><b>Client IP:</b> ' + data.ip);
}).fail(function() {
$('#saveFile').hide();
$('#error').show();
});
// VARIABLES
$fileURL = $_POST['fileURL'];
$tmpURL = substr(md5(rand()), 0, 7);
$deleteCode = md5($tmpURL);
// COOKIE
setcookie($tmpURL, $deleteCode, time()+86400);
// SAVE FILE
if($fileURL){
file_put_contents("tmp/" . $tmpFile, file_get_contents("http://" . $fileURL));
}
// OUTPUT
$result = array(
'url' => "tmp/" . $tmpFile,
'size' => filesize("tmp/" . $tmpFile) * .0009765625 * .0009765625,
'timestamp' => date('H:i:s d-m-Y'),
'ip' => $_SERVER['REMOTE_ADDR']
);
echo json_encode($result);