为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript 在 JSON 请求上获取

JavaScript 在 JSON 请求上获取

一只萌萌小番薯 2023-09-07 18:23:54
我有一个基本的 Javascript Web 应用程序,它发送 JSON 请求并读取从请求返回的数据。一周前,这段代码运行良好,没有错误。今天检查的时候,每次都失败。在此期间我没有编辑任何内容。这是我的代码的 JSON 请求部分。function Get(yourUrl){  var Httpreq = new XMLHttpRequest(); // a new request  Httpreq.open("GET",yourUrl,false);  Httpreq.send(null);  return Httpreq.responseText;}var json_obj = JSON.parse(Get('https://www.purpleair.com/json'));results = json_obj.results;控制台上的完整读数为:    [Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.    GET https://www.purpleair.com/json 400 (Bad Request)谁能帮我弄清楚这笔交易是什么?自从我上次运行此命令以来,我发送 JSON 请求的网站似乎没有发生变化,我只是完全困惑了。
查看完整描述

1 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

正如您在开发人员工具中看到的那样 - 有些事情发生了明显的变化:

https://img1.sycdn.imooc.com//64f9a4f80001710d09890479.jpg

关于已弃用的同步请求的警告只是警告 - 但我们可以使用异步请求来修复它...错误的请求...似乎可以通过添加到查询字符串中的任何内容来修复...


function Get(yourUrl, yourHandler){

    var Httpreq = new XMLHttpRequest();

    Httpreq.open("GET",yourUrl,true); // true makes this request async

    Httpreq.onload = function(e) {

        var json_obj = JSON.parse(Httpreq.response);

        var results = json_obj.results;

        yourHandler(results);

    };

    Httpreq.send();

    return Httpreq;

}


var req = Get('https://www.purpleair.com/json?anything', function(results){

    // here you can place some code to do something with results

    // example below: alert the number of the results

    alert(results.length + ' result recieved');

});


查看完整回答
反对 回复 2023-09-07
  • 1 回答
  • 0 关注
  • 81 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信