admin管理员组文章数量:1322697
I use the free geocoding API of mapquest
I want to check if the request is sucessfull, but returned no data.
I type "vdfsbvdf54vdfd" (just a silly string) as adress in a form field. I expect an alert like so "Sorry, wrong input". Alert never happens.
This is my code snippet
$.ajax({
type: "POST",
url: "``",
data: { location: ad, maxResults: 1}
})
.done(function( response ) {alert(response);
var geoclng = response.results[0].locations[0].latLng.lng;
var geoclat = response.results[0].locations[0].latLng.lat;
if (geoclng=="") {alert("Sorry, wrong input");}
//now use lon/lat on map etc
)}
I tried if (geoclng=="") {alert("Sorry, wrong input");}
also if (response.length=0) {alert("Sorry, wrong input");}
and also if ($.isEmptyObject(response)) {alert("Sorry, wrong input");}
and alert never happens.
If it helps, when I alert the response I get object Object
.
Thanks in advance
I use the free geocoding API of mapquest
I want to check if the request is sucessfull, but returned no data.
I type "vdfsbvdf54vdfd" (just a silly string) as adress in a form field. I expect an alert like so "Sorry, wrong input". Alert never happens.
This is my code snippet
$.ajax({
type: "POST",
url: "`http://open.mapquestapi./geocoding/v1/address?key=012`",
data: { location: ad, maxResults: 1}
})
.done(function( response ) {alert(response);
var geoclng = response.results[0].locations[0].latLng.lng;
var geoclat = response.results[0].locations[0].latLng.lat;
if (geoclng=="") {alert("Sorry, wrong input");}
//now use lon/lat on map etc
)}
I tried if (geoclng=="") {alert("Sorry, wrong input");}
also if (response.length=0) {alert("Sorry, wrong input");}
and also if ($.isEmptyObject(response)) {alert("Sorry, wrong input");}
and alert never happens.
If it helps, when I alert the response I get object Object
.
Thanks in advance
Share Improve this question asked Feb 9, 2014 at 15:54 slevinslevin 3,89621 gold badges76 silver badges140 bronze badges3 Answers
Reset to default 4Remove the extra single quotes around the url and check for the length of the locations array:
$.ajax({
type: "POST",
url: "http://open.mapquestapi./geocoding/v1/address?key=012",
data: { location: ad, maxResults: 1}
})
.done(function( response ) {
alert(response.results[0].locations.length); //if greater than zero, you have results
if( response.results[0].locations.length > 0 ){
var geoclng = response.results[0].locations[0].latLng.lng;
var geoclat = response.results[0].locations[0].latLng.lat;
//now use lon/lat on map etc
} else {
alert("Sorry, wrong input");
}
)}
When you run a call to http://open.mapquestapi./geocoding/v1/address?key=012, it is going to return an object whether or not there were matches. The contents of that object's locations array will be empty is nothing was found.
response.length == 0
or response == ""
will evaluate to false
since there is always a response returned.
Try adding this one in your ajax code:
$.ajax({
type: "POST",
url: "http://open.mapquestapi./geocoding/v1/address?key=012",
data: {
location: ad, maxResults: 1
}
})
Add this one (just under the data
parameter)
success: function (response) {
if (response == '') {
alert('Sorry!');
}
}
This will run on the success event, and will check for the response returned from the server. Then an if else block to test its value.
I would like to forward you to learn more about jQuery Ajax API: http://api.jquery./jquery.ajax/
Try below code to check the success/failed request.
// Assign handlers immediately after making the request,
// and remember the jqxhr object for this request
var jqxhr = $.get("example.php", function() {
alert("success");
})
.done(function() {
alert("second success");
})
.fail(function() {
alert("error");
})
.always(function() {
alert("finished");
});
// Perform other work here ...
// Set another pletion function for the request above
jqxhr.always(function() {
alert("second finished");
});
for more detail read more on this link https://api.jquery./jQuery.get/
本文标签: javascriptcheck if ajax request is emptyStack Overflow
版权声明:本文标题:javascript - check if ajax request is empty - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1742109633a2421184.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论