Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在ajax回调中获取提供给ajax调用的原始数据?_Javascript_Jquery - Fatal编程技术网

Javascript 如何在ajax回调中获取提供给ajax调用的原始数据?

Javascript 如何在ajax回调中获取提供给ajax调用的原始数据?,javascript,jquery,Javascript,Jquery,基本上,我在一系列图像中循环。如果图像没有源,它将对pixabay进行ajax调用,以查找项目的图像,并将URL设置为image元素的src。但是,调用“this”将引用ajax调用,而不是image元素。我现在的方法是从“选项”中的“数据”中获取元素的元素ID,但这不起作用。我还尝试从成功回调内部调用“imageOf”,但这也不起作用 $("img").each(function() { if (!$(this).attr("src")) { var i

基本上,我在一系列图像中循环。如果图像没有源,它将对pixabay进行ajax调用,以查找项目的图像,并将URL设置为image元素的src。但是,调用“this”将引用ajax调用,而不是image元素。我现在的方法是从“选项”中的“数据”中获取元素的元素ID,但这不起作用。我还尝试从成功回调内部调用“imageOf”,但这也不起作用

$("img").each(function() {
        if (!$(this).attr("src")) {
            var imageOf = $(this).attr("imageOf");

            //get imageURL via ajax call
            var pixabayAPI = "https://pixabay.com/api/";

            $.ajax(pixabayAPI, {
                method: "GET",
                async: false,
                dataType: "json",
                data: {
                    key: "...",
                    q: imageOf,
                    category: "food"
                },
                success: function(result, status, jqXHR) {
                    var images = result.hits;
                    if (images.length > 0){
                        console.log(images[0].webformatURL);
                        $(this).attr("src", images[0].webformatURL);

                        // "this" becomes the ajax call when I want to get the image element instead
                    };
                },
                error: function(e) {
                    console.log(e);
                }
            });
        }
    });

GET请求没有数据——数据基本上是请求的主体。 因此,对于此解决方案,最好在URL内提供API密钥,如下所示:

${key}&q=${imageOf}&image\u type=photo

不要忘记将这个stirng放到backticks(`)中,因为它是带有变量key和imageOf的插值字符串


然后,作为回应,您可以像他们的API文档所说的那样进行处理:

您可以在调用之前将
$(this)
缓存到另一个变量中,因此
var image=$(this)然后在
success
函数中使用
image
。这与所问的问题无关……无论如何都是完全错误的。jQuery将
数据
属性编码为GET请求中的查询字符串,无需手动执行。