AngularJS服务如何传多个参数?

How to pass multiple params to express with the AngularJS service?

我已经将两个参数从客户端传递到 express 端点,它在我的本地机器上给了我结果,但是当我部署到 linux 服务器时,它没有工作,没有错误,也没有响应?您认为这可能是参数问题吗?

client.js

getServerSearch:function(str,strEnv){
                    return $http.get("/serverSearch?searchTxt=" + str + '&searchEnv=' + strEnv);
         }

server.js

app.get('/serverSearch', function (req, res) {
    var searchTxt = req.query.searchTxt;
    var searchEnv = req.query.searchEnv;

            searchFileService.readFile(searchTxt,searchEnv,function(lines,err){
                        console.log('Logs',lines);
                          if (err)
                           return res.send();
                           res.json(lines);
                    });
    console.log('Search text', searchTxt);
})

;

某些大于 127 的 ASCII 字符和 unicode 点需要在 UTF-8 and replaced with percent-encoding 中正确编码。

AngularJS$http 服务有一个内置的参数序列化程序来执行此操作。

function getServerSearch(str,strEnv){
    //return $http.get("/serverSearch?searchTxt=" + str + '&searchEnv=' + strEnv);

    var params = {};
    params.searchTxt = str;
    params.searchEnv = strEnv;

    return $http.get("/serverSearch", { params: params })
        .catch(function(errorResponse) {
            console.log(errorResponse);
            throw errorResponse;
        });

}

此外,包含一个拒绝处理程序以查看任何内部框架错误或从服务器返回的错误也是明智的。

另见 MDN JavaScript reference - encodeURIComponent().