我在PHP页面上有一些Ajax,它会多次请求另一个PHP页面来处理部件号并返回某些信息。唯一的问题是当我不小心在它要求的页面上发生某种PHP错误时我不知道我在PHP页面上做错了什么,因为控制台只返回" undefined"当我尝试使用console.log(response.my_var);在控制台中打印响应变量。如何调试我要求的PHP页面?我似乎无法让PHP返回任何错误,它只是崩溃,JavaScript返回那些未定义的响应变量。有没有办法让我访问应该生成的PHP错误?这是我正在使用的Ajax请求代码:
function imagething(){
if(!done) {
var url = "process_parts.php";
$.ajax({
//async: false, defaults to async
url: url,
type: 'POST',
data: {
offset: offset,
limit: limit,
parts: parts,
part_delimiter: part_delimiter,
diagram_format: diagram_format
}
}).done(function(response) {
//This is what produces "undefined"--> console.log(response.part_delimiter);
if (response.processed !== limit) {
// asked to process 20, only processed <=19 - there aren't any more
done = true;
}
if(response.table_data != '') {
$('#myTable > tbody:last').append(response.table_data);
}
if(response.image_format != '') {
$('#third_th').append(" (format: "+response.image_format+")");
$('#fourth_th').append(" (format: "+response.diagram_format+")");
$('#fifth_th').append(" (format: "+response.pdf_format+")");
}
offset += response.processed;
$('[data-toggle="tooltip"]').tooltip({'placement': 'top'});
$("#mybox").html("<span class=\"color_blue\">Processed a total of " + offset + " parts.</span>");
imagething(); //<--------------------------recursive call
}).fail(function(jqXHR, textStatus) {
$("#mybox").html("Error after processing " + offset + " parts. Error: " + textStatus);
done = true;
});
}
}
imagething();
答案 0 :(得分:1)
许多方法都可以做到这一点。 首先,您可以使用谷歌浏览器并按Ctrl + Shift + I ...现在单击网络选项卡,您可以轻松查看您的ajax调用的发送/响应值。 如有必要,您甚至可以在ajax PHP中回显/打印出来。 我个人将这个ajax URL请求复制并粘贴到另一个窗口,以这种方式查看响应(通常使用额外的GET变量,如_debug = 1定义。
您也可以通过CURL请求执行此操作,再次从Google Chrome网络页面捕获CURL命令(&#39;复制为CURL命令&#39;)
最后,如果您无法使用Chrome,则可以使用Charles Proxy等网络嗅探器拦截流量。