Javascript 在html中接受Json输入并发送http请求

Javascript 在html中接受Json输入并发送http请求,javascript,html,angularjs,json,input,Javascript,Html,Angularjs,Json,Input,我需要在其中一个文本字段中接受JSON字符串作为输入,例如输入如下:: {"order":1} 在提交表单时,我尝试创建请求并将此输入发送到http请求 var body = ({"key" : input}); var request = { method : 'POST', url : '/xxx', data : body, h

我需要在其中一个文本字段中接受JSON字符串作为输入,例如输入如下::

{"order":1}
在提交表单时,我尝试创建请求并将此输入发送到http请求

var body = ({"key" : input});

var request = {
                    method : 'POST',
                    url : '/xxx',
                    data : body,
                    headers : {
                        'Content-Type' : "application/json"
                    }
                };
                $http(request).success(function(response) {

                }).error(function(response) {

                });
但是当主体输入形成时,服务器会响应400个错误请求,例如

"key": "{"order":"1"}"
服务器是否需要输入,如
“key”:{“order”:“1”}

您可以看到,json开头和结尾的
是额外附加的,因为输入的类型是文本,如何实现上面提到的预期的格式或任何更好的方法

请提出建议。

我不知道为什么
input
是一个麻烦,但要克服这个问题,请将
data:input,
更改为
data:JSON.parse(input),
我不知道从哪里获得变量“input”,但我假设您正在以某种方式使用jQuery选择它,然后尝试使用val()获取它的值。如果是这样的话,那么您得到的是一个字符串,您应该在ajax请求的“data”键中发送的应该是一个经过解析的JSON

这将解决您的问题:

data : JSON.parse(input)

文本框中用户的输入是JSON,我认为
parse()
会再次尝试将JSON解析回JSON。无论如何,我会试试这个。我看不到你的代码中任何地方的
key
。您期望的字符串格式也不正确。@MinusFour:Yes键是要使用的实际
key:value
对的表示,谢谢我更新了问题。