我使用$.ajax()
jquery做一些ajax调用。最近我有一个ajax调用,返回json格式化的字符串成功调用。在我的服务器php代码中,如果有问题,我只返回一个字符串数据(die("nothing found in database");
),非json格式化,这是一个解释问题的消息。 ajax调用正常,但我很难得到字符串响应。
以下是javascript代码:
$.ajax({
url: "check.php",
dataType: "json",
data: {
row_id : row_id
},
async: false
}).done(function(data) {
check = data;
}).fail(function( jqXHR, textStatus, msg ){
$('#dialog').html("<p>"+textStatus+"</p>");
$('#dialog').dialog({
modal: true,
buttons: {
"OK": function() {
$( this ).dialog("close");
}
}
});
});
.fail()
函数中的3个变量都没有给出我从服务器发送的字符串响应。 textStatus
只是给了我“解析错误”。 msg
变量给出了:“意外的令牌T”。我想要的只是我从带有die()
函数的.php文件发送的普通字符串。我测试以确保php正确发送字符串。有谁知道我应该如何得到我的字符串数据响应?
也许这不是处理此问题的正确方法。我在想因为ajax调用确实没有错误,只是我选择返回普通字符串而不是JSON,这是一个有问题的信号。
答案 0 :(得分:1)
从ajax调用中删除 dataType:&#34; json&#34;,,并在使用前对响应字符串使用JSON.parse()。 因为如果解析JSON是问题,那么你会在这里得到错误。
但我怀疑这是不是问题。
答案 1 :(得分:0)
所以问题是你无法真正显示你的非json字符串吗?
在.fail函数中,我曾经这样写过,而且它一直有效:
.fail(function(data) { /* handle data response */ });
只需显示数据。执行 console.log (数据)以查看它是否显示了您想要的内容。
编辑:当然,在PHP中也做一些其他测试,例如返回&#34;您的消息在这里。&#34 ;; , echo &#39;您的留言&#39 ;;等