2013-10-18 15 views
10

URL短縮のためにgoo.glを使用します。「Content-Type」とJSONを含むリクエストを投稿する

<form method="post" action="https://www.googleapis.com/urlshortener/v1/"> 
    <button type="submit"> submit </button> 
</form> 

私はここのコンテンツ・タイプ 'とJSONを追加するにはどうすればよい - :

POST https://www.googleapis.com/urlshortener/v1/url 
Content-Type: application/json 
{"longUrl": "http://www.google.com/"} 

私のhtml:私は、次の要求を作成する必要がありますか?

+0

ajaxを介してフォームを送信し、そこにコンテンツタイプを追加することができます。 – Ghost

+0

@Ghostなぜあなたはajaxのために行く必要がありますか? – Prateek

+0

@Prateekデフォルトのコンテンツタイプは "application/x-www-form-urlencoded"です。これを変更するには、フォームの 'enctype'属性を変更する必要があります。 JSONデータを送信するのに必要な質問も同様にここでも適切なajaxリクエストを使用することを提案しました。私はajaxなしでJSONデータを送信する方法を知らない。 – Ghost

答えて

17

ブラウザは、フォーム提出のメディアタイプとしてJSONをサポートしていません(サポートされるタイプはlisted in the specです)。

Webページからこのような要求を行う唯一の方法は、XMLHttpRequestオブジェクトを使用することです。

Googleは、URL Shortener APIとやり取りできる(XMLHttpRequestをラップする)a JavaScript libraryを提供しています。

0

Ajaxリクエストを使用すると、人生がずっと楽になります。

$.ajax({ 
      url: 'https://www.googleapis.com/urlshortener/v1/url', 
      type: 'POST', 
      data: JSON.stringify({ 
      longUrl: $scope.url 
      }), 
      contentType: 'application/json', 
      success: function(got) { 
      return alert("shortened url: " + got.id); 
      } 
    }); 

上記は完全に機能します。

関連する問題