I';我无法使用JavaScript Ajax发布数据

I';我无法使用JavaScript Ajax发布数据,javascript,ajax,Javascript,Ajax,我能够使用Ajax get请求从filltext web api获取数据,但是当我使用Post请求时,我看不到返回到控制台的任何内容,也看不到任何错误,我该如何解决这个问题 const xhr=new-XMLHttpRequest(); 常量url=http://www.filltext.com/?rows=1&pretty=true&id={index}&fname={sahil}&lname={keshav}&company={business}; 让test=JSON.stringify(

我能够使用Ajax get请求从filltext web api获取数据,但是当我使用Post请求时,我看不到返回到控制台的任何内容,也看不到任何错误,我该如何解决这个问题

const xhr=new-XMLHttpRequest();
常量url=http://www.filltext.com/?rows=1&pretty=true&id={index}&fname={sahil}&lname={keshav}&company={business};
让test=JSON.stringify({
id:124,
fname:“sunil”,
名字:“辛格”,
公司:“锐步”
}); 
函数getData(){
xhr.onreadystatechange=()=>{
if(this.readyState==4&&this.status==200){
让tes=JSON.parse(this.responseText)
控制台日志(tes);
}
}
xhr.open('POST',url,true);
setRequestHeader('Content-type','application/json');
发送(测试);
}

由于您在此处发出
POST
请求,您可能需要检查
200
400
之间的状态。(我包括400个,因为在此之后,通常会启动错误请求的代码)

this.status>=200&&this.status<400

以下是链接:

201创建请求已成功,并且已创建新资源 作为结果而创建。这通常是POST之后发送的响应 请求,或一些PUT请求


进一步澄清:成功的
POST
请求的典型状态代码为201。这是的意思,即您不能为
POST
请求发送
200
代码。但这种情况通常不会发生,我相信这就是代码中的错误所在。

确保控制台记录有助于调试请求的所有信息,并添加错误处理功能

此外,开发人员控制台是您的朋友。检查浏览器的控制台和网络选项卡(Chrome)以了解发生了什么。确保选中网络选项卡中的XHR选项,以仅显示XMLHttpRequest网络请求

这是一个可以在这方面帮助你的方法

const xhr=new-XMLHttpRequest();
常量url=http://www.filltext.com/?rows=1&pretty=true&id={index}&fname={sahil}&lname={keshav}&company={business};
让test=JSON.stringify({
id:124,
fname:“sunil”,
名字:“辛格”,
公司:“锐步”
}); 
函数getData(){
xhr.onreadystatechange=()=>{
log(“onReadyStateChange:”,xhr.readyState,xhr.status,xhr.statusText);
if(this.readyState==4&&this.status==200){
让tes=JSON.parse(this.responseText)
控制台日志(tes);
}
}
xhr.open('POST',url,true);
setRequestHeader('Content-type','application/json');
发送(测试);
//添加错误处理:
xhr.onerror=函数(){
日志(“onError:”,xhr.status,xhr.statusText);
//无法完成请求时触发
}
}

为什么要执行
POST
请求?FillText.com似乎只为
GET
提供一个端点。所以我们无法更新该值并将其返回控制台?但是我们可以手动操作。@sahil您是否尝试过状态代码在200-400之间的btw?@RahulDwivedi我刚刚熟悉这个请求概念,我从3天开始尝试,但如果您有任何资源可以共享,我无法继续,请让我从中学习。如果(this.readyState==4&),只需将您的条件替换为此
if(this.readyState==4&&(this.status>=200&&this.status<400))
然后像我在回答中所说的那样尝试一次。那么,请告诉我出了什么问题,为什么我的请求没有完成,或者你可以提供一个链接,以便我能够理解post请求。我想使用纯JavaScript而不是JQuery。我已经用指向so post的链接更新了答案,这可以帮助你了解发生了什么h POST请求及其响应。您是否绝对确定可以发布到API?我不确定当前服务是否支持POST请求。@Kostan我不确定POST是否可以在filltext API上工作,但您可以手动添加数据对象,按enter键输入值以获得更新,但我感觉如果服务器不支持,我们可以发布它如果您不支持POST请求,您将无法POST并返回错误消息。但在JS领域处理对象和数据是另一回事。