Mam ten fragment kodu jQuery, który działa dobrze krzyżowo:
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");
}
});
Teraz próbuję przekonwertować to na kod Angular.js bez żadnego sukcesu:
$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;
});
Każda pomoc doceniona.
jquery
ajax
angularjs
cross-domain
angular-http
Nieskończony
źródło
źródło
Odpowiedzi:
Sposób wywołania $ http przez AngularJS wyglądałby następująco:
lub można by było napisać jeszcze prościej przy użyciu metod skrótowych:
Jest kilka rzeczy, na które należy zwrócić uwagę:
success
ierror
(proszę również zwrócić uwagę na parametry każdego wywołania zwrotnego) - wycofane w wersji kątowej 1.5then
zamiast tego funkcji.then
użytkowania można znaleźć tutajPowyższe to tylko krótki przykład i kilka wskazówek, zapoznaj się z dokumentacją AngularJS, aby uzyskać więcej: http://docs.angularjs.org/api/ng.$http
źródło
params
idata
są dwie różne rzeczy: parametry kończą się w adresie URL (ciąg zapytania), a dane - w treści żądania (tylko dla typów żądań, które faktycznie mogą mieć treść).Żądanie AJAX możemy zaimplementować korzystając z usługi http w AngularJs, która pomaga odczytywać / ładować dane ze zdalnego serwera.
Metody obsługi $ http są wymienione poniżej,
Jeden z przykładów:
http://www.drtuts.com/ajax-requests-angularjs/
źródło
Możesz użyć tego:
Pobierz „Angular-post-fix”: „^ 0.1.0”
Następnie dodaj „httpPostFix” do swoich zależności podczas deklarowania modułu kątowego.
Ref: https://github.com/PabloDeGrote/angular-httppostfix
źródło
możesz użyć $ .param do przypisania danych:
spójrz na to: Problem międzydomenowy AngularJS + ASP.NET Web API
źródło