Получение ошибки 400 по действительной ссылке с $ http.get - PullRequest
0 голосов
/ 04 мая 2018

Я пытаюсь настроить пользовательские запросы для ODATA-источника (Northwind) - я получаю ошибку 400 при получении URL - однако, если перейти непосредственно к URL в браузере, я получаю соответствующие результаты , Есть ли что-то еще, что должно быть указано в функции?

app.directive('search', function () {
return function ($scope, element) {
    element.bind("keyup", function (event) {
      let val = element.val();
      if(val.length > 2) {
        $scope.search(val);
      }
    });
};
});

app.controller('searchEmployees', function($scope, $http) {
    $scope.search = function(val) {
    console.log(val);
        $http.get(BASE_URL+"Employees?$filter=substringof("+val+", FirstName) eq true")
        .then(function(response) {
            $scope.rawData = response.data;
    })
}});

HTML

<div ng-controller="searchEmployees">
  <input type="text" search/>
</div>

Если я пытаюсь найти f.ex 'Nan', так как есть Сотрудник по имени Нэнси, он работает с использованием прямого URL (http://services.odata.org/Northwind/Northwind.svc/Employees?$filter=substringof%28%27Nan%27,%20FirstName%29%20eq%20true),, но не с моим кодом.

1 Ответ

0 голосов
/ 08 мая 2018

Мне пришлось использовать encodeURI и обратную косую черту, чтобы разрешить ':

query = encodeURI("Products?$filter=contains(ProductName,\'"+val+"\')");
query = BASE_URL+query;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...