ajax 返回字符串值时不工作
ajax not working while returning a String value
我在我的一个 Java 项目中编写了以下 jquery 代码。
$(document).ready(function(){
$('#searchBid').click(function(){
alert("reached ajax");
$.ajax({
url: "/fetchbookingnumber",
data: {id:$('#conBid').val()},
timeout: 10000,
type: "POST",
cache: false,
contentType: "application/x-www-form-urlencoded",
dataType: "json",
beforeSend:function(jqXHR, options) {
if($('#conBid').val()==''){
alert("Please enter a BookingID");
}
return false;
}
}).fail(function(jqXHR, textStatus, errorThrown){
alert("The ajax call failed");
}).done(function(resp, textStatus, jqXHR){
$('#conBno').val(resp);
});
});
});
数据库返回的值是一个 varchar。在我的 Java 服务器中,我将值存储在字符串中。我面临的问题是,就返回值是数字(数字)而言,ajax 有效,但如果返回的字符串是字母数字,则 ajax 失败并调用 .fail 方法。
我想这背后的原因是
contentType: "application/x-www-form-urlencoded",
我应该如何更改代码才能使 ajax 在这两种情况下都能正常工作。请有人伸出援手。
您真的收到 JSON 数据吗?
如果它是一个简单的字符串,将其设置为:-
DataType: "text"
或者像评论中提到的那样从服务器
发送一个正确的JSON
问题是这一行 dataType: "json",
,这意味着服务器将发送一个 json 字符串作为响应。任何其他响应都将导致错误,但 json 编码的 javascript 原语除外。例如一个数值(5、5.9、0x5f、5e2 等)、null、一个字符串("string"、"also a string" 等)请注意文本周围的引号。这是因为许多 json 解析是宽松的并接受这些原语。
如果您设置 return 类型,您应该 return 该类型。
我在我的一个 Java 项目中编写了以下 jquery 代码。
$(document).ready(function(){
$('#searchBid').click(function(){
alert("reached ajax");
$.ajax({
url: "/fetchbookingnumber",
data: {id:$('#conBid').val()},
timeout: 10000,
type: "POST",
cache: false,
contentType: "application/x-www-form-urlencoded",
dataType: "json",
beforeSend:function(jqXHR, options) {
if($('#conBid').val()==''){
alert("Please enter a BookingID");
}
return false;
}
}).fail(function(jqXHR, textStatus, errorThrown){
alert("The ajax call failed");
}).done(function(resp, textStatus, jqXHR){
$('#conBno').val(resp);
});
});
});
数据库返回的值是一个 varchar。在我的 Java 服务器中,我将值存储在字符串中。我面临的问题是,就返回值是数字(数字)而言,ajax 有效,但如果返回的字符串是字母数字,则 ajax 失败并调用 .fail 方法。 我想这背后的原因是
contentType: "application/x-www-form-urlencoded",
我应该如何更改代码才能使 ajax 在这两种情况下都能正常工作。请有人伸出援手。
您真的收到 JSON 数据吗?
如果它是一个简单的字符串,将其设置为:-
DataType: "text"
或者像评论中提到的那样从服务器
发送一个正确的JSON问题是这一行 dataType: "json",
,这意味着服务器将发送一个 json 字符串作为响应。任何其他响应都将导致错误,但 json 编码的 javascript 原语除外。例如一个数值(5、5.9、0x5f、5e2 等)、null、一个字符串("string"、"also a string" 等)请注意文本周围的引号。这是因为许多 json 解析是宽松的并接受这些原语。
如果您设置 return 类型,您应该 return 该类型。