繁体   English   中英

我无法使用 JavaScript Ajax 发布数据

[英]I'm not able to POST data using JavaScript Ajax

我能够使用 Ajax GET 请求从填充文本 web api 获取数据,但是当我使用 Post 请求时,我看不到任何返回到控制台的内容,也没有错误?

const xhr = new XMLHttpRequest();
const url = 'http://www.filltext.com/?rows=1&pretty=true&id={index}&fname={sahil}&lname={keshav}&company={business}';

let test = JSON.stringify({
    id:124,
    fname:'sunil',
    lname:'singh',
    company:'reebok'
}); 

function getData(){ 
    xhr.onreadystatechange = () => {
        if(this.readyState === 4 && this.status === 200){
            let tes = JSON.parse(this.responseText)
            console.log(tes);
        }
    }
    xhr.open('POST',url,true);
    xhr.setRequestHeader('Content-type','application/json');
    xhr.send(test);
}

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

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

这是一个StackOverflow 帖子,可以帮助您朝这个方向发展。

const xhr = new XMLHttpRequest();
const url = 'http://www.filltext.com/?rows=1&pretty=true&id={index}&fname={sahil}&lname={keshav}&company={business}';

let test = JSON.stringify({
           id:124,
           fname:'sunil',
           lname:'singh',
           company:'reebok'
}); 
    function getData(){ 
       xhr.onreadystatechange = () => {
           console.log( "onReadyStateChange:", xhr.readyState, xhr.status, xhr.statusText);
           if(this.readyState === 4 && this.status === 200){
               let tes = JSON.parse(this.responseText)
                 console.log(tes);
          }
      }
       xhr.open('POST',url,true);
       xhr.setRequestHeader('Content-type','application/json');
       xhr.send(test);
       // Add error handling:
       xhr.onerror = function(){
           console.log( "onError:", xhr.status, xhr.statusText);
           // Triggers when request couldn't be completed
       }
     }

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

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

以下是链接:

MDN-发布状态

MDN-状态

201 Created 请求成功,结果创建了一个新资源。 这通常是在 POST 请求或某些 PUT 请求之后发送的响应。

进一步说明:成功POST请求的典型状态代码是 201。这并不是说您不能为POST请求发送200代码。 但这通常不会发生,我相信这就是代码中的错误所在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM