私はOrigin Crossでうまく動作するこのjQueryコードを持っています:
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");
}
});
今、私はこれをAngular.jsコードに変換しようとしていますが、成功しません:
$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;
});
任意の助けに感謝します。
$ httpを呼び出すAngularJSの方法は次のようになります。
$http({
url: "http://example.appspot.com/rest/app",
method: "POST",
data: {"foo":"bar"}
}).then(function successCallback(response) {
// this callback will be called asynchronously
// when the response is available
$scope.data = response.data;
}, function errorCallback(response) {
// called asynchronously if an error occurs
// or server returns response with an error status.
$scope.error = response.statusText;
});
または、ショートカットメソッドを使用してさらに簡単に記述できます。
$http.post("http://example.appspot.com/rest/app", {"foo":"bar"})
.then(successCallback, errorCallback);
注目すべき点がいくつかあります。
success
およびerror
です(各コールバックのパラメーターにも注意してください)-angular v1.5で非推奨then
関数を使用してください。then
の使用法の詳細については、こちらをご覧ください こちら上記は簡単な例といくつかのポインタです。詳細については、AngularJSのドキュメントを確認してください。 http://docs.angularjs.org/api/ng.$http
AngularJsのhttpサービスを使用してajaxリクエストを実装できます。これは、リモートサーバーからのデータの読み取り/読み込みに役立ちます。
$ httpサービスメソッドは以下のとおりです。
$http.get()
$http.post()
$http.delete()
$http.head()
$http.jsonp()
$http.patch()
$http.put()
例の1つ:
$http.get("sample.php")
.success(function(response) {
$scope.getting = response.data; // response.data is an array
}).error(){
// Error callback will trigger
});
これを使用できます:
「angular-post-fix」をダウンロード:「^ 0.1.0」
次に、angularモジュールを宣言しながら、依存関係に「httpPostFix」を追加します。