Как передать несколько параметров для выражения с помощью сервиса 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 ().