Json 通过ajaxpost发送变量

Json 通过ajaxpost发送变量,json,ajax,Json,Ajax,我试图使用POST方法将包含名称的变量发送到服务器。这应该是异步的。我已经编写了以下代码,但是我得到了一个错误,SyntaxError:JSON.parse:JSON数据的第1行第1列出现了意外的数据结尾,老实说,这没有太大帮助 我下载了firebug,firebug让我更接近了,因为它说错误出现在第84行第17列(我不确定该如何处理该列,所以我在其中计算了17个字符)。如果是这种情况,那么它说我的问题是从parse这个词开始的 我是AJAX新手,所以我不确定你们在做什么,也不需要看,但我将首先

我试图使用POST方法将包含名称的变量发送到服务器。这应该是异步的。我已经编写了以下代码,但是我得到了一个错误,SyntaxError:JSON.parse:JSON数据的第1行第1列出现了意外的数据结尾,老实说,这没有太大帮助

我下载了firebug,firebug让我更接近了,因为它说错误出现在第84行第17列(我不确定该如何处理该列,所以我在其中计算了17个字符)。如果是这种情况,那么它说我的问题是从parse这个词开始的

我是AJAX新手,所以我不确定你们在做什么,也不需要看,但我将首先展示我认为问题所在的这段代码

        function sendByPost()
        {
            var name = getName();
            var req = new XMLHttpRequest();
            req.open("POST", "http://httpbin.org/post", true);
            req.setRequestHeader('Content-Type', 'application/json');
            req.send('{"Tom"}');
            console.log(JSON.parse(req.responseText));
        }
        function getName()
        {
            return document.getElementById("myName").value;
        }
我也不想在第7行写Tom,我的目的是让它说用户输入的任何内容。因此,我设置了一个name变量,该变量将在文本框中获取值

但是,执行以下操作不起作用:

            req.send('{name}');

基本上,您需要在请求中发送一个对象

我做了一个简单的演示:

函数sendByPost(){
var name=getName();//从输入字段获取值。
var req=新的XMLHttpRequest();
var data={};//声明一个对象。
data.name=name;//数据对象的name属性的值为。
请求打开(“POST”http://httpbin.org/post“,对);
setRequestHeader('Content-Type','application/json');
req.send(JSON.stringify(data));//将数据对象作为JSON字符串发送。
req.onreadystatechange=函数(){
如果(this.readyState==4&&this.status==200){//检查响应的状态
console.log(JSON.parse(req.responseText));//打印结果。
}
};
}
函数getName(){
返回document.getElementById(“name”).value;
}
sendByPost()

。您需要以POST请求所期望的格式发送数据。因此,您可以创建一个名为
data
的变量,并将其设置为如下所示
var data=“name=“+encodeURIComponent(name)
”但是执行以下操作不起作用:“您如何测试它?(除了
{“Tom”}
是无效的json这一事实之外)这与jQuery有什么关系?您还发送了请求,然后立即解析响应,这是不起作用的:它是异步的。我认为您可能需要退一步,并且可能考虑使用jQuery直到了解基本知识为止。