Javascript AJAX请求返回';实体不是格式良好的';application/json';文件。缺少或为空输入“&引用;代码";:&引用;400“';

Javascript AJAX请求返回';实体不是格式良好的';application/json';文件。缺少或为空输入“&引用;代码";:&引用;400“';,javascript,ajax,post,Javascript,Ajax,Post,当我试图创建一个AJAX请求,以便针对外部API发布一些用户时,我遇到了这个问题,无法这样做。我没有像PHP那样多地使用JS,我认为现在是开始学习更多内容的好时机 我使用的方法首先检查表单contactForm是否已完全完成,而它尚未完成,它会阻止js发送数据并显示下一个表单customerForm 如果所有数据都已正确填充,js将通过AJAX将数据发送到api,并隐藏该表单以显示下一个表单 (函数(){ "严格使用",; addEventListener('load',function()){

当我试图创建一个AJAX请求,以便针对外部API发布一些用户时,我遇到了这个问题,无法这样做。我没有像PHP那样多地使用JS,我认为现在是开始学习更多内容的好时机

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

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

(函数(){
"严格使用",;
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',函数(事件){
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();
(功能(){
var contactEmail=document.getElementById('contactEmail')。值;
var-erid=2;
var contactName=document.getElementById('contactName')。值;
var contactLastName=document.getElementById('contactLastName')。值;
var contactCompany=document.getElementById('contactCompany')。值;
var contactRegNum=document.getElementById('contactRegNum')。值;
$.ajax({
url:url,
键入:“POST”,
跨域:是的,
事实上,
数据:JSON.stringify({
名字:联系人姓名,
lastname:contactLastName,
公司:联络公司,
电子邮件:联系电子邮件,
经销商id:contactResellerId,
comregnum:contactRegNum
}),
数据类型:“json”,
标题:{
“授权”:“基本”+令牌,
}
})
.done(函数(响应){alert('Se ha creado el contacto!');}
.fail(函数(jqXHR,textStatus,errorshown){alert(jqXHR);});
})();
}
},假);
});
},假);
})();
每当我尝试执行此操作时,它都会返回:

该实体不是格式良好的“应用程序/json”文档。输入缺失或为空,“代码”:“400”

表单值被正确地提取到变量中,正如
console.log()
所证明的那样

输入是什么意思?我忘了什么吗


像往常一样,感谢大家的帮助,祝你周末愉快!

这个请求的asnwer实际上非常简单:我的AJAX请求确实格式不好,因为它缺少一些属性。应该是这样的:

$.ajax({
url:url,

方法:“POST”,打印正在发送的json,并将其与API预期接收的json进行比较。乍一看,json应该生成得很好,但如果在API预期值的位置将属性设置为“”或null,则这将是一个合理的响应。您尝试调用的页面没有应用程序/json响应或有效响应或者更改后端,使其返回有效的json响应。或者您可以“数据类型:'json',"虽然这不是一个很好的解决方案,但从您的代码中可以看到。@Gavin感谢您的快速回答!我刚刚仔细检查了一下,但似乎数据提取正确,结构和数据类型也正确嘿@JeroendeBeer!感谢您花时间回答。遗憾的是,我无法访问后端,因为API不是我们创建的,我已经有数据:json。这可能是因为我缺少ssl证书吗?如果您将整个xhr记录在失败回调中,它可能有原始返回的主体。