PHP Ajax响应在javascript解析时提供未定义的数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP Ajax响应在javascript解析时提供未定义的数据相关的知识,希望对你有一定的参考价值。
它今天早些时候没有给出错误,但现在我得到的每个文件上载
Unexpected number in JSON at position 161
我浏览了文件上传JSON,并了解到该文件传递了非法的0:
"ftype":"file",
"meta":"prem-sal2.jpg",
"fname":"screenshot1",
"id":"392",
"epn":"63",
"action":"updategamefiles",
"file":
"name":"prem-sal2.jpg",
"type":"image/jpeg",
"tmp_name":"/tmp/phpxPZNCL",
"error":0,
"size":968969
这是选择文件的javascript:
else if (fieldclass[1].indexOf("screenshot") >= 0)
ftype = 'file';
document.getElementsByClassName(fname)[0].getElementsByTagName('label')[0].innerhtml = 'Loading';
meta = this.files[0].name;
file = this.files[0];
if( file.type === "image/jpg" || file.type === "image/png" || file.type === "image/gif" || file.type === "image/jpeg")
extension = true;
那么我怎样才能避免出现错误:文件JSON中为0?
好吧,忘了添加Ajax请求:
if (extension === true)
var data = new FormData();
data.append('file', file);
data.append('ftype', ftype);
data.append('meta', meta);
data.append('fname', fname);
data.append('id', id);
data.append('epn', epn);
data.append('action', 'updategamefiles');
var value = jQuery.ajax(
data : data,
type: 'POST',
url: ajaxurl,
cache: false,
processData: false, // Don't process the files
contentType: false, // Set content type to false as jQuery will tell the server its a query string request
dataType: 'json',
success: function(data, textStatus, jqXHR)
if( data.response == 'SUCCESS' )
document.getElementsByClassName(data.fname)[0].getElementsByTagName('label')[0].innerHTML = 'Success';
document.getElementsByClassName(data.fname)[0].getElementsByTagName('label')[0].style.backgroundImage = "url('" + data.thumb +"')";
if( data.response == 'ERROR' )
document.getElementsByClassName(data.fname)[0].getElementsByTagName('label')[0].style.background = '#fdd2d2';
document.getElementsByClassName(data.fname)[0].getElementsByTagName('label')[0].innerHTML = 'Error';
,
error: function(jqXHR, textStatus, errorThrown)
)
答案
事实证明,在回复编码的json以回应来自php后端后,我不得不使用die();
,而没有我将额外的数据添加到json导致问题。
以上是关于PHP Ajax响应在javascript解析时提供未定义的数据的主要内容,如果未能解决你的问题,请参考以下文章