Javascript 将ajax响应属性放入GoogleBooks封面图像的变量中

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

我试图将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.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函数内部的缩略图信息执行任何需要执行的操作。