首页 > 解决方案 > 如何停止在 xmlHttpRequest 中将数字转换为字符串?

问题描述

使用 xmlHttpRequest 将元素添加到服务器上的 JSON 文件时,如何停止将数字转换为字符串?

以下代码使用元素更新我的 .json 文件,但数字(var 重要性)在它到达服务器时是一个字符串......我不知道为什么。

这是我格式化输入数据并创建 xmlHttpRequest.. (script.js) 的地方:

   btnSubmit.onclick = submitTask;

function submitTask() {
    inputTask = document.querySelector('#task');
    inputImportance = document.querySelector('#importance');
    var task = inputTask.value;
    var importance = Number(inputImportance.value);
    console.log("User Input: ",task, importance);

    //Setup XML HTTP Request
    var xhr = new XMLHttpRequest();
    xhr.open('POST', api_url_add +'/'+ task +'/'+ importance, true);
    xhr.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');

    //Receive response from server.
    xhr.onload = function() {  
        response = JSON.parse(xhr.response);
        console.log(response);
    }

    xhr.send();
}

这是服务器端代码(server.js):

// ADD task to the list (task, importance)
app.post('/add/:task/:importance?', addTask);

function addTask(request, response) {
    var data = request.params;
    console.log('Submitted to server:','\n', data);
    var task = data.task;
    var importance = Number(data.importance);
    var reply;
    
    if (!importance) {
        var reply = {
            msg: "Importance value is required."
        }

    } else {            
        var element = data;              
        tasks['taskList'].push(element);
   
        fs.writeFile('tasks.json', JSON.stringify(tasks, null, 2), function(err){
            console.log('all done')
        })

        response.send(reply);
    }

}

感谢您所有的帮助。

标签: javascriptexpressxmlhttprequest

解决方案


推荐阅读