2017-02-28 4 views
0

現在、私は所有しているサーバーに投稿要求を送信しようとしていますが、これはJSONデータのみを受け入れるように構成されています。HTMLフォームからJSONエンコードされた投稿リクエストを送信するにはどうすればよいですか?

残念ながら、私のブラウザのデベロッパーコンソールからPOST要求を調べると、JSONとしてエンコードされていないデータがエンコードされたURLとして送信されるため、応答はタイプ415です。提供されたデータ。

形式:

<form action='http://myhost.elasticbeanstalk.com/API/Beta/Register' method = 'post' enctype='application/json'> 
Email: *<br> 
<input type='text' name='Email' style='width: 500px;' value='{"Email":"[email protected]"}'><br> 
<br> 
(Fields denoted with * are mandatory) 
<br> 
<input type='submit' value='Apply' style='float: right;'> 
</form> 

あなたが見ることができるように、私は理論的には、コンテンツタイプのJSONのリクエストを送信する必要があり、あなたが送信される要求を調べる場合しかし、あなたはコンテンツタイプとして残っていることがわかりエンコードされたURLですが、誤っていない限り、タグ "enctype = 'application/json'"を修正する必要があります。
(imgurはいつものように、現在ダウンしているので、可能な場合、私はより恒久的なリンクにこの画像を変更します)
https://puu.sh/unXtf/2610742d2f.png

私は何かが足りないのですか?

+0

'{「電子メール」:「[email protected]」}問題があることであるとして'ただ、現在は問題ではありません 'テストする@ gmail.com' – mehulmpt

+0

する必要がありますどちらの方法でもjsonとしてエンコードされていません。 jsonの書式設定された文字列ではなく生のテキストに変更すると、それはまだ問題のエンコードされたURLです。私はこの問題が解決したら明らかにそれを変更する必要がありますが、サーバーはjsonを期待しているので、URLエンコードされたデータを受け取っているので、これが原因で415エラーが発生します。 – Potatosaurus

答えて

0

ブラウザは、ネイティブに、HTMLのメディアタイプとしてJSONをサポートしていません。 XMLHttpRequest/Ajaxを使用してフォームをJSONとして送信します。 jQueryのを使用してダミー例:

$.ajax({ 
      url: 'http://yoururl', 
      type: 'POST', 
      data: yourFormDataSearilized 
      contentType: 'application/json', // this is what you want 
      success: function() { 
      // check 
      } 
    }); 
+0

残念なことに、これは基本的なWebページビルダーを使用しているので、実際のサイトが開発されている間に一時的なページを持つことができるので、そのようなものを使用できるという贅沢はありません。しかし、その場合、私は今度はJSONに依存しない別の方法に頼ります。ありがとう。 – Potatosaurus

関連する問題