更新:我想把var值传递给服务器

你好, 老样子,老样子……:)

我有一个表单叫做<form id="testForm" action="javascript:test()>和一个名为<code id="testArea"的代码区域></code>

我使用这段代码来stringify和显示在代码区数据:

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/,如果你按提交查询按钮,你会看到页面的头部填充。

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

    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数据发送到服务器。我的服务器设置为更新或POST数据在正确的地方。


当前回答

如果你发送这个帖子请求到一个跨域,你应该检查这个链接。

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

您的服务器不接受跨站点发布请求。因此,需要更改服务器配置以允许跨站点请求。

其他回答

'data'应该是一个字符串化的JavaScript对象:

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

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

data: JSON.stringify(formData)

一些服务器还要求application/json内容类型头文件:

contentType: 'application/json'

这里也有一个类似问题的更详细的答案:Jquery Ajax发布JSON到webservice

你像这样发布JSON

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

如果你传递一个对象作为设置。jQuery会将其转换为查询参数,并默认发送数据类型application/x-www-form-urlencoded;charset=UTF-8,可能不是您想要的

如果你发送这个帖子请求到一个跨域,你应该检查这个链接。

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

您的服务器不接受跨站点发布请求。因此,需要更改服务器配置以允许跨站点请求。