【问题标题】:ajax returning json data as undefinedajax 将 json 数据返回为未定义
【发布时间】:2022-01-13 05:12:06
【问题描述】:

当我运行以下代码时。 它会出错并警告“失败错误:StntaxError: Unexpected token

$("#a").click(function () {
  st_dt = $("#st_dt").val();
  end_dt = $("#end_dt").val();
  lot_cd = $("#lot_cd").val();
  var obj = { st_dt: st_dt, end_dt: end_dt, lot_cd: lot_cd };
  var json_1 = JSON.stringify(obj);
  $.ajax({
    type: "POST",
    url: '{{ url_for("get_operid") }}',
    data: json_1,
    dataType: "JSON",
    success: function (data) {
      alert("Success\n" + data);
    },
    error: function (request, status, error, data) {
      alert("fail\n" + "error:" + error + "\n data:" + data);
    }
  });
});

【问题讨论】:

  • 这需要更多细节,但听起来你的服务器正在返回 xml;这通常发生在服务器出现 500 错误时。

标签: html jquery json ajax undefined


【解决方案1】:

看看代码,它看起来像是一个使用 Blade 模板的 Laravel API 请求,或者函数 url_for 在 Flask 中......无论哪种情况

这意味着 api 请求的响应是 HTML 字符串而不是 一个 json 响应...

即API 请求正在返回登录页面或某些 HTML 页面...

要检查响应,您可以在“网络”选项卡中打开 Chrome 开发工具,检查 API 的响应...

【讨论】:

  • 你的意思是警报(数据)返回python烧瓶中的函数输出?不是 json ( {"st_dt":st_dt,"end_dt":end_dt,"lot_cd":lot_cd} ) ?
  • 那为什么会出现语法错误??在运行 python 函数之前它失败了。
  • @임성빈 是的,它正在返回 HTML ...,它以 <...>
  • 感谢您的回答。我在使用 ajax 之前使用了表单。所以我返回了 render_template,其中包含 html 名称。所以它返回了 html 代码...我修复了代码。现在它运行良好...
【解决方案2】:

你可以尝试的是:

var obj = { st_dt: st_dt, end_dt: end_dt, lot_cd: lot_cd };
console.log(obj);
var json_1 = JSON.stringify(obj);
console.log(json_1);

然后在浏览器控制台中查看您的对象是什么以及 JSON 是否正确转换了您的对象。

如果没问题,您的请求应该正确完成。并尝试查看您得到的响应数据是什么:

success: function (data) {
      consoel.log('response below');
      console.log(data);
 }

你会发现错误。我希望。

【讨论】:

  • obj, json_1 正常。
  • ajax 出错...
  • 您可以检查您的浏览器网络选项卡以查看请求事件发生的情况。 1. 你的网址是什么。 2. 您发送的内容。 3. 你得到了什么。
猜你喜欢
  • 2012-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多