Javascript 将ajax响应属性放入GoogleBooks封面图像的变量中
我试图将ajax响应中的url放入jquery中的变量中。 我编写了以下代码:Javascript 将ajax响应属性放入GoogleBooks封面图像的变量中,javascript,jquery,ajax,variables,google-books,Javascript,Jquery,Ajax,Variables,Google Books,我试图将ajax响应中的url放入jquery中的变量中。 我编写了以下代码: var thumb = $.ajax({ dataType: 'json', url: 'https://www.googleapis.com/books/v1/volumes?q=isbn:' + isbn, success: function(response){ return $(response).volumeInfo.imageLink
var thumb = $.ajax({
dataType: 'json',
url: 'https://www.googleapis.com/books/v1/volumes?q=isbn:' + isbn,
success: function(response){
return $(response).volumeInfo.imageLinks.thumbnail;
}}).responseText;
根据我对其他答案的理解,我必须在最后添加.responseText,否则代码将在不等待ajax响应的情况下继续。
但是,thumb变量仍然未定义
我尝试通过相关更改实现(因为我一次只传递一个ISBN,所以不应该有数组。响应应该只包含一个imageLinks.缩略图url),但我似乎无法正确捕获响应
我特别研究了其他答案,但我仍然不清楚如何获得ajax响应 $。ajax是异步的,这意味着代码将完全执行,成功回调将在稍后启动 立即评估
var thumb
。阅读“”和“”以更熟悉此主题
您的问题的解决方案是:
function setThumbnail(thumbnail){
// this will evaluate later, when the ajax returns success
console.log('thumbnail gotten!');
var thumb = thumbnail; // do something with in in this function
}
$.ajax({
dataType: 'json',
url: 'https://www.googleapis.com/books/v1/volumes?q=isbn:' + isbn,
success: function(response){
setThumbnail($(response).volumeInfo.imageLinks.thumbnail);
}
});
// This line will evaluate immediately and carry on
console.log('ajax executed');
我给你写了一些日志,帮助你理解这里的执行顺序。
我还想指出,$(response)
在我看来很奇怪,如果不进行测试,我认为它可能只是response.volumeInfo…
console.log(response)
在成功回调中,以确保您了解要返回的数据。这很好,但我需要函数外部的拇指。如果我不能使用var X=$ajax并从函数返回thumb,那么我如何在函数外部使用它呢?请对setThumbnail函数内部的缩略图信息执行任何需要执行的操作。