データは、configオブジェクトのdata
プロパティで指定する必要が要求されます
$http({
method: 'POST',
url: 'FinjHandler.ashx',
//contenttype: '',
//params: { SaveJournal: JSON.stringify($scope.ViewData) },
//USE data property
data: $scope.ViewData,
/*
headers: {
'Content-Type': 'text/plain',
'Content-Length': $scope.paramsLength
},*/
}).then(function onSuccess(response) {
// Handle success
var data = response.data;
var status = response.status;
var statusText = response.statusText;
var headers = response.headers;
var config = response.config;
//...
alert('saved');
}, function onError(response) {
// Handle error
var data = response.data;
var status = response.status;
var statusText = response.statusText;
var headers = response.headers;
var config = response.config;
//...
});
params
プロパティでは、フレームワークURLはデータをコード化し、検索パラメータとしてURLに追加します。 POSTデータは通常、パーセント符号化が非常に非効率的なため、データのURLを使用しません。
AngularJSフレームワークは自動的にJavaScriptオブジェクトまたは配列をJSON形式のUTF-8文字列にエンコードします。既定のコンテンツタイプとしてapplication/json
が使用されます。
//FOR FormData, files, and blobs
headers: { 'Content-Type': undefined }
undefinedにコンテンツタイプを設定することにより、AngularJSフレームワークはapplication/json
のデフォルト設定と適切コンテンツタイプを設定しますXHR APIを省略する:バイナリデータについて
は、Content-Type
ヘッダundefined
に設定しました。
APIに 'text/plain'が必要ですか?通常、JSONデータは 'application/json'として投稿されます。 – georgeawg
返信してくれてありがとうございます。私はapplication/json、text/plainを試してみました。$ httpの中に "headers"オプションを入れていなくても試してみました。データ量が少なくても動作します。実際にjsonの文字列の長さは2000年代に近づいています。それでも私はポストデータがありません。 – Riju