2013-10-18 9 views
10

Mam pracować z goo.gl w celu skracania adresów URL. Muszę zrobić następującą prośbę:Wyślij prośbę o dodanie "Content-Type" i JSON

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

mój HTML: -

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

Jak dodać 'content-type' i JSON tutaj?

+0

Możesz przesłać formularz przez ajax i dodać tam typ zawartości. – Ghost

+0

@Ghost Dlaczego musisz przejść do ajax? – Prateek

+0

@Prateek Domyślnym typem treści jest "application/x-www-form-urlencoded", teraz aby to zmienić, atrybut 'enctype' formularza powinien zostać zmieniony. Ponieważ pytanie wymagane do wysłania danych JSON również zasugerowałem, aby użyć żądania ajax, które jest również odpowiednie tutaj. Nie wiem, jak wysłać dane JSON bez ajax. – Ghost

Odpowiedz

17

Przeglądarki nie obsługują JSON jako typu mediów do przesyłania formularzy (obsługiwane typy to listed in the spec).

Jedynym sposobem uzyskania takiego żądania ze strony internetowej jest użycie obiektu XMLHttpRequest.

Google zapewnia a JavaScript library (która opakowuje XMLHttpRequest), które mogą wchodzić w interakcje ze swoimi URL Shortener API.

0

Korzystanie z żądania Ajax znacznie ułatwia życie.

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

Powyższe działa idealnie.