2012-06-30 104 views
0
{ 
"entry": 
    { 
     "city_id": "1234", 
     "city_name": "California" 
    } 
} 

考慮這是我想從我的HTML表單發佈到內容管理系統api的json。我有一個帶有兩個文本框的表單,用於獲取city_id和city_name的條目以及一個提交按鈕。如何發佈json?

我需要上面的json作爲輸入到api後通過。我想用javascript來做。 請幫我

+0

一些代碼會很好! – Samson

+0

好吧,您可以將數據發佈爲簡單的表單,然後在將其發送給CMS API之前在服務器端進行編碼,而不是將其作爲JSON字符串發送! –

+0

你使用的是什麼服務器端語言? PHP的? – Alp

回答

0

這是自定義表單數據的AJAX請求可能jQuery代碼:

var form = $('#myform'); 
var data = { 
    mail: form.find('input[name=mail]').val(), 
    pass: form.find('input[name=pass]').val(), 
}; 

$.ajax({ 
    type: 'POST', 
    url : '/foo/bar', 
    dataType : 'json', 
    data : data, 
    success : function(result, textStatus, jqXHR) { 
     // do something with the result 
    }, 
}); 
+0

不,那不是*發送* JSON到服務器。 – Arjan

+0

沒錯,我誤解了這個問題。不過不需要發送JSON,因爲POST數據可以很容易地轉換 – Alp

+0

其實,也許我誤解了; OP並不是說它在請求中也應該是JSON。 (downvote不是我的; +1是爲了彌補這一點,但是你可能想要解釋的是,這並不是以JSON的形式發送數據,儘管例如許多人爲這種請求類型所迷惑的數據類型)。 – Arjan

2

什麼是您的API是什麼樣子?

POST是一個HTTP操作,HTTP協議並不知道JSON。


如果你知道你需要通過HTTP提供一個JSON值,有機會,你需要JSON.stringify()您的JSON對象,然後通過該字符串作爲命名之後的參數,但是這是一個猜測。你的API應該告訴你它是如何傳遞數據的。

如果這不夠,我可以繼續,如果你提供更多的細節。

+0

的確,我很少看到JSON被髮送到服務器。其實,我只看到[一個API](http://developer.zendesk.com/documentation/rest_api/introduction.html)要求。 (然後,它沒有使用任何參數名稱,只是一個'curl -d'{「entry」:{「city_id」:「1234」,「city_name」:「California」}}'-H「Content-Type:application/json「-v -X POST'會在那裏完成。) – Arjan

+0

我已經使用NodeJS設置了一些apis,它接受json作爲POST的主體而無需參數化。這並不是真正的「標準」,但是如果你只是推動JSON的話,它會很好地工作。 –