2013-10-18 34 views
10

'u eklemek için istek gönderme URL kısaltması için goo.gl ile çalışıyorum.'Content-Type' ve JSON

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

nasıl ben 'content-type' ve burada json eklerim -:

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

benim html: Ben şu isteği gerekir?

+0

Formu ajax üzerinden gönderebilir ve orada içerik türü ekleyebilirsiniz. – Ghost

+0

@Ghost Neden ajax için gitmeniz gerekiyor? – Prateek

+0

@Prateek Varsayılan içerik türü "application/x-www-form-urlencoded" şeklindedir, şimdi bunu değiştirmek için formun 'enctype' özniteliği değiştirilmelidir. JSON verilerini de göndermek istediğimden beri burada da uygun olan bir ajax isteğini kullanmayı önerdim. Ajax olmadan bir JSON verisinin nasıl gönderileceğini bilmiyorum. – Ghost

cevap

17

Tarayıcılar formu gönderimleri için bir medya türü olarak JSON desteklemez (desteklenen tipleri listed in the spec vardır).

bir web sayfasından böyle bir talepte tek yolu XMLHttpRequest nesnesini kullanmaktır.

Google, URL Shortener API ile etkileşime girebilecek a JavaScript library (hangi XMLBttpRequest paketini açar) sağlar.

0

Ajax isteğini kullanmak hayatı kolaylaştırır.

$.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); 
      } 
    }); 

Yukarıdakiler mükemmel çalışır.