Ajax(XMLHttpRequest)请求的responseText未定义

时间:2017-07-11 22:58:17

标签: javascript json ajax xmlhttprequest

我一直在尝试一个简单的控制台应用程序,它将完成两件事。 (1.)它将发出异步Ajax请求。 (2.)将responseText记录到控制台。

为此,我向openweathermap.org发出了ajax请求,并尝试将responseText解析为JSON,最后将其记录到控制台。

请在下面找到我的代码来实现此目的

var data ;
var url = "http://api.openweathermap.org/data/2.5/weather?id=7535661&APPID=56104080d6cb412468dad1627cb27da6";

var myRequest;

function sendRequest(url){
    myRequest = new XMLHttpRequest();
    myRequest.onreadystatechange= function(){
    if(myRequest.readyState == 4 && myRequest.status== 200){
       data= JSON.parse(myRequest.responseText);

    }
   myRequest.open("GET", url, true );
   myRequest.send();
    }
   console.log(data);
   }

sendRequest(url);

每当我尝试运行它时,它总是在退回"未定义"。

请帮帮我。

1 个答案:

答案 0 :(得分:2)

您的inner_user = Arel::Table.new(:users, as: :i_user) inner_ubg = Arel::Table.new(:user_by_groups, as: :i_ubg) User.joins(:groups).where( Arel::Nodes::In.new( Group.arel_table[:id], inner_user. project(inner_ubg[:group_id]). join(inner_ubg).on(inner_user[:id].eq(inner_ubg[:user_id])). where(inner_ubg[:active].eq(true)). where(inner_user[:id].eq(4)) ) ).to_sql #=> SELECT "users".* FROM "users" # INNER JOIN "user_by_groups" ON "user_by_groups"."user_id" = "users"."id" # INNER JOIN "groups" ON "groups"."id" = "user_by_groups"."group_id" # WHERE "groups"."id" IN (( # SELECT "i_ubg"."group_id" FROM "users" "i_user" # INNER JOIN "user_by_groups" "i_ubg" ON "i_user"."id" = "i_ubg"."user_id" # WHERE "i_ubg"."active" = 't' AND "i_user"."id" = 4 # )) 回调中包含open()send()种方法。因此,除非请求完成,否则您永远不会打开连接。试试这个:

onreadystatechange()