Как передать несколько параметров для выражения с помощью сервиса AngularJS?

Я передал два параметра от клиента, чтобы выразить конечную точку, это дает мне результаты на моем локальном компьютере, но когда я развертываю на сервере 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);
})

;

1 ответ

Решение

Некоторые символы ASCII и точки Unicode больше 127 должны быть правильно закодированы в UTF-8 и заменены на процентное кодирование.

Служба AngularJS $http имеет встроенный сериализатор param для этого.

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 - encodeURIComponent ().

Другие вопросы по тегам