jQuery发布JSON

更新:我想将var value传递给服务器

你好,同样的老,同样的老… 🙂

我有一个名为<form id="testForm" action="javascript:test()">和一个名为<code id="testArea"></code>

我正在使用此代码串并显示代码区中的数据:

 var formData = form2object('testForm'); document.getElementById('testArea').innerHTML = JSON.stringify(formData, null, '\t'); var value = JSON.stringify(formData, null, '\t'); 

我想要的是将这些数据发送到一个JSON文件。 我一直在这个项目上工作: http : //ridegrab.com/profile_old/ ,如果你按Submit Querybutton,你会看到页面的头部填充。

我也想用这段脚本发送数据:

  function authenticate(userName, password) { $.ajax ({ type: "POST", //the url where you want to sent the userName and password to url: 'username:password@link to the server/update', dataType: 'json', async: false, //json object to sent to the authentication url data: '{"userName": "' + userName + '", "password" : "' + password + '"}', success: function () { alert("Thanks!"); } }) } 

再次,我想要的是能够将该JSON数据发送到服务器。 我的服务器设置为在适当的位置update or POST数据。

'data'应该是一个string化的JavaScript对象:

 data: JSON.stringify({ "userName": userName, "password" : password }) 

要发送你的formData ,把它传递给stringify

 data: JSON.stringify(formData) 

某些服务器还需要application/json内容types:

 contentType: 'application/json' 

这里还有一个类似问题的更详细的答案: jQuery的Ajax发布json到webservice

你这样发布JSON

 $.ajax(url, { data : JSON.stringify(myJSObject), contentType : 'application/json', type : 'POST', ... 

如果你传递一个对象作为settings.data,jQuery将把它转换为查询参数,默认情况下用数据typesapplication / x-www-form-urlencoded发送; charset = UTF-8,可能不是你想要的

如果您将这个post请求发送到跨域,您应该检查这个链接。

https://stackoverflow.com/a/1320708/969984

您的服务器不接受跨网站发布请求。 所以服务器configuration需要改变,以允许跨站点请求。