2012-06-30 57 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的话,它会很好地工作。 –