Hola tengo un problema que no me deja seguir adelante.
Tengo un Web Service en la cual pide ingresar coordenadas (INPUT); estas, si son correctas, mandará en formato JSON
un listado del nombre de las sucursales cercas (OUTPUT).
Se puede ver aquí:
http://saltala.cl/igniter/WSExamples/GetSucursales
El tema es que no he podido lograr enviar los parámetros para obtener esta informacion (lat
, long
) desde FrontEnd.
Datos:
Input:
lat
(float
): latitud del GPS
long
(float
): longitud del GPS
Output:
Lista de empresas y sucursales con los siguientes parámetros: id_sucursal
, direccion
, nombre_empresa
, distancia
.
Código: Entiendo esto, se que esta mal y me gustaría si me pueden ayudar a corregir y completarlo por favor, e visto demasiados videos, he podido lograr conexion con un get, sin enviar parámetros, como en los cursos, pero de esto nada.
function comotellames($scope, $http) {
$http({
url: 'http://saltala.cl/igniter/Appmovil/GetSucursales',
method: "POST",
data:
latitud= ???
longitud= ??
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
.success(function (data, status, headers, config) {
console.log(data)
id_sucursal, direccion, nombre_empresa, distancia. ??
}).error(function (data, status, headers, config) {
console.log(error),
$scope.status = status;
});
Видя страницу, которую ты снабжаешь ссылками, мне кажется, что ошибка находится в, как ты используешь обещания. Ты используешь success
и error
что являются устаревшими методами. В Вашем месте напиши then
и catch
, также у тебя есть какие-то ошибки sintáxis.
Ты должен использовать ng-model
в input
и после использовать $scope
с Вашим корреспондентом binding, чтобы получать стоимость
<input class="form-control" ng-model="lat">
он получается используя
$scope.lat
Это быть должный оставаться так
angular.module('app', [])
.controller('CoordenadasCtrl', function($scope, $http) {
$scope.enviar = function() {
$http({
url: 'http://saltala.cl/igniter/Appmovil/GetSucursales',
method: "POST",
data: {
lat: $scope.lat,
lng: $scope.lng
},
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
.then(function(response) {
console.log('success');
console.log(response.data)
}).catch(function(error) {
console.log('error');
console.log(error);
});
};
});
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="CoordenadasCtrl" class="form-horizontal">
<div class="form-group">
<label class="col-md-3 control-label">Latitud</label>
<div class="col-md-9">
<input class="form-control" ng-model="lat">
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">Longitud</label>
<div class="col-md-9">
<input class="form-control" ng-model="lng">
</div>
</div>
<button type="button" ng-click="enviar()" class="btn btn-primary">Enviar</button>
</div>
Заметь: snippet не функционирует, потому что он дает отказывающийся доступ. Код должен функционировать хорошо на твоем сервере, так как этот не делает CORS.
Поле data
должен будь быть объектом. У него нет правильного sintáxis, это должен бы быть немного comó:
data:
{
longitud:'xxx',
Latitud:'xxxx'
}
И уже оно было бы должно функционировать, кроме того линия, что эта после console, кажется, не имеет смысл.
Привет.
400-500
(catch
) и200
, он удовлетворительный (then
). Которые ты считал последованными, он значит, что petici и # 243; n est и # 225; функционируя как он ожидается. Не забывай проголосовать за вопрос, если он тебе был полезен. – devconcept 01.09.2016, 17:49status
он говорит тебе, который c и # 243; я говорю результата petici и # 243; n. Если он говорит200 OK
и говорит, что{success: false}
имеет общее с твоим server. Я обратил внимание, что которое env и # 237; в нее p и # 225; gina примера этоlat
иlng
и ты посылаешьlatitude
иlongitude
. Это не то, что ждет сервер и может быть причина ошибки. Correg и # 237; мой пример. – devconcept 01.09.2016, 18:11