Javascript 如何在ajax回调中获取提供给ajax调用的原始数据?
基本上,我在一系列图像中循环。如果图像没有源,它将对pixabay进行ajax调用,以查找项目的图像,并将URL设置为image元素的src。但是,调用“this”将引用ajax调用,而不是image元素。我现在的方法是从“选项”中的“数据”中获取元素的元素ID,但这不起作用。我还尝试从成功回调内部调用“imageOf”,但这也不起作用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
$("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请求中的查询字符串,无需手动执行。