【问题标题】:jQuery post error 'must be of type String'jQuery发布错误'必须是字符串类型'
【发布时间】:2019-12-24 16:03:40
【问题描述】:

尝试将输入字段的值作为 JSON 发布到“/确认”,但我在控制台中收到错误消息。 "description must be of type String"

$(document).ready(function() {
  var $form = $(".js-form");

  $form.on("submit", function(event) {
    event.preventDefault();
    var desc = $form.find( "input[name='description']" ).val();
    var url = "/confirm";

    $.post(url, {description: desc}, function(response){
      console.log(response)
    }, "json");

  });
});

我希望响应成功,因为我正在发布一个字符串

【问题讨论】:

  • 检查 desc 中保存的值,以及服务器端实际接收到的值
  • desc 肯定是字符串,response 是对象但我不明白为什么
  • 请发布完整的错误。目前尚不清楚该错误来自何处,因为 jQuery 通常不会抱怨这样的属性。

标签: jquery json post request


【解决方案1】:

根据this链接jquery.find函数返回一个元素数组,所以你应该这样使用它:

var desc = $form.find( "input[name='description']" )[0].value;

【讨论】:

  • 如果我将desc 的类型打印到控制台,它表明它是一个字符串。
  • val() 将返回 jQuery 对象定义的元素列表中第一个元素的值(并且 jQuery 对象不是数组;它类似于数组)。
猜你喜欢
  • 2018-04-24
  • 1970-01-01
  • 2016-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-03
  • 1970-01-01
相关资源
最近更新 更多