2016-11-08 15 views
2

POSTコールを使用してxlsx、pdfファイルをダウンロードするには、HTMLを使用しています。 私は自分のペイロードを送信するために以下のコードを使用していますが、それはURL形式として送信され、POST用のペイロードをJSON形式で送信する方法

<form method="post" action="{{url}}" enctype='application/json'> 
<input type="text" name="type" value="{{type}}" hidden> 
<input type="text" name="paramValue" value="{{value}}" hidden> 
</form> 


Request body 
type=Shop&paramValue=Kumar 

私はこのためにJSONとしてそれを渡す必要があります私は

Response HTTP/1.1 415 Unsupported Media Type 

、などのエラーを取得していますHTMLでフォームを使用する場合は、JSONとしてデータを渡す方法をお勧めします。

答えて

1

フォームenctype属性はapplication/jsonと表示されているようにhereをサポートしていません。

手動でJSONあなたのポストの要求を使用するようにデータをエンコードまたはポストは、デフォルトでJSON $httpサービスを使用する必要があり

:それは別々の角度の呼び出しで$ HTTPを使用して

var data = { type: $scope.form.type, value: $scope.form.value }; 

$http.post(url, data) // default content-type is 'application/json' for $http.post 
.success(function(data, status) { 
    //yay 
}); 
+0

を、私は使用できません。それは$ httpでurlを渡す必要があるフォームアクションを伴いますが、フォームとアクションでJSONを構築する必要があります。これを達成する方法を提案してください。 – user3428736

+0

普通の形ではできません。 Jsonにシリアル化し、リクエストヘッダーのcontent-typeを設定するにはJavaScriptが必要です。つまり、onsubmitまたはonclickを角度付きで使用してコントローラにコールしたり、jqueryを使用したりすることはできますが、バニラのHTMLフォームでは不可能です。 – tommybananas

+0

答えをマークできますか? – tommybananas

関連する問題