Javascript客户端从服务器获取响应

时间:2018-06-23 17:13:57

标签: javascript node.js express server client

我用html填写表格,然后提交。 首先,客户端验证数据(例如,是否接受eula复选框),然后,客户端将数据发送到服务器。 服务器还会检查数据是否向我返回了状态代码。 如何从服务器获取此状态代码?

以下是一些示例片段

HTML

    <form name="newsletter" method="post" action="/api/newsletter" onsubmit="if(!validate()){return false;} else tryToFetch();"> 
    <input name="name" type="text" id="name"/>
    <input name="eula" type="checkbox" id="eula"/>
    <input  type="submit" name="submit"/> </form>

客户端js:

function validate() {
    if (this.eula.checked == false) { alert ('EULA NOT ACCEPTED'); return false; } else {
        return true; }
}

tryToFetch

function tryToFetch(){
    fetch('http://localhost:3000/api/newsletter')
        .then(function(response) {
            console.log(response.status ) ;
        });
}

Server.js

app.post('/api/newsletter', urlencodedParser ,function (request, response) {
//Just check some data...
    response.statusCode = 999;
    response.send('999');
});

现在如何在浏览器中获取状态码999并进行处理? 甚至有可能只使用js吗?

1 个答案:

答案 0 :(得分:0)

Fetch documentation所述:

“获取规范与jQuery.ajax()的区别主要有两种:

即使响应是HTTP 404或500,从fetch()返回的Promise也不会拒绝HTTP错误状态。相反,它将正常解析(okstatus设置为false),并且只会拒绝网络故障或是否有任何原因阻止请求完成。”

那么这可能是导致您的问题吗?您是否尝试过使用默认的XMLHttpRequest。