正在尝试访问控制台中的数据.日志



我有一个函数,它运行ajax调用,使用以下代码查看文件是否存在

function doesItExist(filenamePath) {
return jQuery.ajax({
url: filenamePath,
type:'HEAD'
});
}

当我尝试使用在console.log中读取时

console.log(doesItExist(some path));

我得到以下信息:

{readyState: 1, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}
readyState: 4
getResponseHeader: ƒ (a)
getAllResponseHeaders: ƒ ()
setRequestHeader: ƒ (a,b)
overrideMimeType: ƒ (a)
statusCode: ƒ (a)
abort: ƒ (a)
state: ƒ ()
always: ƒ ()
then: ƒ ()
promise: ƒ (a)
pipe: ƒ ()
done: ƒ ()
fail: ƒ ()
progress: ƒ ()
complete: ƒ ()
success: ƒ ()
error: ƒ ()
responseText: ""
status: 404
statusText: "Not Found"
__proto__: Object

我似乎只能访问顶部{}中的内容,无法访问"readyState:4"及以下的任何内容。我该怎么做,特别是"状态:404"?

谢谢。

旁注:即使找到了文件,它也会提供类似的响应,除了"状态:200"。

请帮忙?

所以,我想我已经想通了。我试着解释我的过程,希望这能帮助遇到同样问题的人。

函数

我的原始函数正是它想要做的,即检查文件(以URL的形式(是否存在。这样做的原因是AJAX调用只返回URL的头部,而不下载任何内容。通过这种方式,您可以了解是否:

  1. 找到文件(状态200(,或
  2. 未找到文件(状态404(

下面是函数:

function doesItExist(filenamePath) {
return jQuery.ajax({
type:'HEAD',
url: filenamePath
});
}

现在,我需要调用该函数,以便在剩余的cose中使用数据(响应(。

调用函数

这就是我错的地方。

我之前所做的是尝试console.logAJAX调用。这不会给我任何有用的回应,除非我告诉AJAX调用我需要从中得到什么,以及我需要调用的哪一部分。

doesItExist(some path).done(function(response, textStatus, jqXHR) {
console.log("XHR: " + (jqXHR.status));
});

简单地说,我调用这个函数就像调用任何其他函数一样:

doesItExist(parameters);

然而,使用AJAX调用,您可以根据调用是否成功获得各种响应。你可以通过使用回调来做到这一点:

  1. .done()成功时
  2. .fail()不成功时(出现错误(
  3. 无论成功或错误,.always()都会运行
  4. .then(对此不重要(

使用这些回调,我们可以从jqXHR中获得结果,jqXHR是jQuery(jq(XMLHttpRequest(

XHR以下是有关该主题的更多信息:https://api.jquery.com/jquery.ajax/

相关内容

  • 没有找到相关文章

最新更新