打印对AJAX调用的响应

时间:2016-09-05 19:46:45

标签: javascript jquery ajax xmlhttprequest asynccallback

我正在尝试通过AJAX调用查询服务器上的端点

服务器代码:

@app.route('/predict')
def predict():
  return 'predict'

我想做的就是打印"预测"在控制台中。

$.get({
  url: "http://url.com/predict",
  success: function(data) {
    console.log(data)
  }
})

然而,我得到的回应是:

Object {readyState: 1}

我不熟悉Javascript&回调。我应该改变什么来使这项工作?

2 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

$.ajax({
      type: "GET",
      url: "http://url.com/predict",
      success: function(data) {
         console.log(data)
      },
      error: function (xhr, ajaxOptions, thrownError) {
        console.log(xhr.status);
        console.log(thrownError);
      }
});

或者您可以实例化XMLHttpRequest,并以这种方式发送请求:

function load() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      console.log(this.responseText);
    }
  };
  xhttp.open("GET", "http://url.com/predict", true);
  xhttp.send();
}

答案 1 :(得分:0)

将我的Flask端点更改为:

@app.route('/predict')
def predict():
  resp = flask.Response("predict")
  resp.headers["Access-Control-Allow-Origin"] = "*"
  return resp

这现在有效:

$.ajax({
  url: "https://url.com/predict",
  success: function(data){
    console.log(data)
  }
})