AJAX请求返回'该实体不是格式正确的'application / json'文档。输入内容缺失或为空“,”代码“:” 400”'

问题描述 投票:0回答:1

[当我尝试创建AJAX请求以便针对外部API发布某些用户时,遇到了此问题,我无法这样做。我没有像PHP那样使用JS,我认为这是开始学习更多知识的好时机。

我所采用的方法首先检查表单contactForm是否已完全完成,尽管尚未完成,但它阻止js发送数据并显示下一个表单customerForm

如果所有数据均已正确填充,则js通过AJAX将数据发送到api,并隐藏该表单以显示下一个表单。

(function() {
  'use strict';
  window.addEventListener('load', function() {
    var contactForm = document.getElementById('contactForm');
    var customerForm = document.getElementById('customerForm');

    var validation = Array.prototype.filter.call(contactForm, function(form) {
      contactForm.addEventListener('submit', function(event) {
        if (contactForm.checkValidity() === false) {
          event.preventDefault();
          event.stopPropagation();
        }
        contactForm.classList.add('was-validated');

        if (contactForm.checkValidity() === true) {
            customerForm.style.display = 'block';
            contactForm.style.display = 'none';
            event.preventDefault();
            (function() {
                var contactEmail = document.getElementById('contactEmail').value;
                var contactResellerId = 2;
                var contactName = document.getElementById('contactName').value;
                var contactLastName = document.getElementById('contactLastName').value;
                var contactCompany =  document.getElementById('contactCompany').value;
                var contactRegNum = document.getElementById('contactRegNum').value;

                $.ajax({
                    url: url,
                    type: 'POST',
                    crossDomain: true,
                    withCredentials: true,
                    data: JSON.stringify({
                        firstname: contactName,
                        lastname: contactLastName,
                        company: contactCompany,
                        email: contactEmail,
                        reseller_id: contactResellerId,
                        comregnum: contactRegNum
                    }),
                    dataType: 'json',
                    headers: {
                        'Authorization': 'Basic '+token,
                    }
                })
                .done(function (response) { alert('Se ha creado el contacto!'); })
                .fail(function (jqXHR, textStatus, errorThrown) { alert(jqXHR); });
            })();
        }
      }, false);
    });
  }, false);
})();

[每当我尝试执行此操作时,它都会返回:

该实体不是格式正确的'application / json'文档。输入内容缺失或为空”,“代码”:“ 400”

console.log()证明正确地将表单值提取到变量中。

该消息表示输入是什么意思?我忘记了什么吗?

一如既往,谢谢大家的帮助,祝您周末愉快!

javascript ajax post
1个回答
0
投票

实际上,这是很容易的事情:我的AJAX请求确实没有很好的格式,因为它缺少一些属性。这应该是这样:

© www.soinside.com 2019 - 2024. All rights reserved.