Eu tenho este pedaço de código jQuery que funciona bem entre origens:
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");
}
});
Agora estou tentando converter isso para o código Angular.js sem sucesso:
$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;
});
Qualquer ajuda apreciada.
jquery
ajax
angularjs
cross-domain
angular-http
Sem fim
fonte
fonte
Respostas:
A maneira do AngularJS de chamar $ http seria semelhante a:
ou pode ser escrito ainda mais simples usando métodos de atalho:
Há várias coisas a serem observadas:
success
eerror
respectivamente (observe também os parâmetros de cada retorno de chamada) - Descontinuado na versão angular v1.5then
função.then
uso podem ser encontradas aquiO exemplo acima é apenas um exemplo rápido e alguns indicadores, consulte a documentação do AngularJS para obter mais informações: http://docs.angularjs.org/api/ng.$http
fonte
params
edata
são duas coisas diferentes: os parâmetros terminam na URL (sequência de consultas) enquanto os dados - no corpo da solicitação (apenas para os tipos de solicitação que realmente podem ter corpo).Podemos implementar a solicitação ajax usando o serviço http no AngularJs, que ajuda a ler / carregar dados do servidor remoto.
Os métodos de serviço $ http estão listados abaixo,
Um dos exemplos:
http://www.drtuts.com/ajax-requests-angularjs/
fonte
Você pode usar isto:
Download "angular-post-fix": "^ 0.1.0"
Em seguida, adicione 'httpPostFix' às suas dependências enquanto declara o módulo angular.
Ref: https://github.com/PabloDeGrote/angular-httppostfix
fonte
você pode usar $ .param para atribuir dados:
veja isso: Problema entre domínios da API da Web AngularJS + ASP.NET
fonte