Tengo este fragmento de código jQuery que funciona bien en origen cruzado:
jQuery.ajax({
url: "http://example.appspot.com/rest/app",
type: "POST",
data: JSON.stringify({"foo":"bar"}),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (response) {
console.log("success");
},
error: function (response) {
console.log("failed");
}
});
Ahora estoy tratando de convertir esto al código Angular.js sin ningún éxito:
$http({
url: "http://example.appspot.com/rest/app",
dataType: "json",
method: "POST",
data: JSON.stringify({"foo":"bar"}),
headers: {
"Content-Type": "application/json; charset=utf-8"
}
}).success(function(response){
$scope.response = response;
}).error(function(error){
$scope.error = error;
});
Cualquier ayuda apreciada.
jquery
ajax
angularjs
cross-domain
angular-http
Sin fin
fuente
fuente
Respuestas:
La forma de AngularJS de llamar a $ http se vería así:
o podría escribirse aún más simple usando métodos de acceso directo:
Hay varias cosas a tener en cuenta:
success
yerror
respectivamente (también tenga en cuenta los parámetros de cada devolución de llamada) - Desaprobado en angular v1.5then
función en su lugar.then
uso se puede encontrar aquíLo anterior es solo un ejemplo rápido y algunos consejos, asegúrese de consultar la documentación de AngularJS para obtener más información: http://docs.angularjs.org/api/ng.$http
fuente
params
ydata
son 2 cosas diferentes: los parámetros terminan en la URL (cadena de consulta) mientras que los datos - en el cuerpo de la solicitud (solo para los tipos de solicitud que realmente pueden tener cuerpo).Podemos implementar la solicitud ajax utilizando el servicio http en AngularJs, que ayuda a leer / cargar datos del servidor remoto.
Los métodos de servicio $ http se enumeran a continuación,
Uno de los ejemplos:
http://www.drtuts.com/ajax-requests-angularjs/
fuente
Puedes usar esto:
Descargar "angular-post-fix": "^ 0.1.0"
Luego agregue 'httpPostFix' a sus dependencias mientras declara el módulo angular.
Ref: https://github.com/PabloDeGrote/angular-httppostfix
fuente
puede usar $ .param para asignar datos:
mira esto: AngularJS + ASP.NET Web API Cross-Domain Issue
fuente