不推荐使用XMLHttpRequest。用什么代替?

时间:2016-12-07 01:49:46

标签: javascript xmlhttprequest

尝试使用纯JS方法来检查我是否有一个有效的JS图像网址。我收到一条警告,XMLHttpRequest已被弃用。有什么更好的方法呢?

urlExists(url) {
    const http = new XMLHttpRequest();
    http.open('HEAD', url, false);
    http.send();
    if (http.status !== 404) {
      return true;
    }
    return false;
  }

3 个答案:

答案 0 :(得分:3)

您可能会收到一条消息,即XMLHttpRequest的同步使用已弃用(因为它对用户体验有害;它会在等待响应时冻结页面)。我可以向您保证,该API的正确异步使用不会被弃用。

以下是一些正确使用的示例代码:

var xhr = new XMLHttpRequest()
xhr.onreadystatechange = function() {
    if (this.readyState === this.DONE) {
        console.log(this.status) // do something; the request has completed
    }
}
xhr.open("HEAD", "http://example.com") // replace with URL of your choosing
xhr.send()

答案 1 :(得分:1)

警告可能是因为您要进行同步请求。

答案 2 :(得分:0)

警告的原因是,您在// To search by kilometers instead of miles, replace 3959 with 6371 SELECT user_position.*,driver_position.driver_id, ( 3959 * acos( cos( radians(37.4219983) ) * cos( radians( driver_position.latitude ) ) * cos( radians( driver_position.longitude ) - radians(-122.0844) ) + sin( radians(37.4219983) ) * sin(radians(driver_position.latitude)) ) ) AS distance FROM user_position ,driver_position where user_position.user_id=10002 HAVING distance < 10000 中输入了第三个参数(异步)为http.open('HEAD', url, false);。根据{{​​3}},应将其设置为false