[当我尝试创建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()
证明正确地将表单值提取到变量中。
该消息表示输入是什么意思?我忘记了什么吗?
一如既往,谢谢大家的帮助,祝您周末愉快!
实际上,这是很容易的事情:我的AJAX请求确实没有很好的格式,因为它缺少一些属性。这应该是这样: