Javascript 邮递员表单数据起作用,但原始等价物不起作用

Javascript 邮递员表单数据起作用,但原始等价物不起作用,javascript,angularjs,api,postman,Javascript,Angularjs,Api,Postman,我有一个我正在测试的API,如果我通过具有以下值的表单数据提交数据,它就会工作: key: response[comment] value: This is a test 但是,如果我在原始选项卡中使用以下结构执行一些自定义JSON,它将不起作用: { "response[comment]": "This is a test" } 老实说,这让我发疯了,因为服务器没有给我任何关于问题的细节。 我感觉是对象的编码出错了,但是我使用Angular,我得到了相同的400错误,同时我相当确定它应该只

我有一个我正在测试的API,如果我通过具有以下值的表单数据提交数据,它就会工作:

key: response[comment]
value: This is a test
但是,如果我在原始选项卡中使用以下结构执行一些自定义JSON,它将不起作用:

{ "response[comment]": "This is a test" }
老实说,这让我发疯了,因为服务器没有给我任何关于问题的细节。 我感觉是对象的编码出错了,但是我使用Angular,我得到了相同的400错误,同时我相当确定它应该只使用JS对象作为.post上的数据

任何帮助都将不胜感激

好的,我找到了

显然,评论[回应]实际上是:

{"comment":{"response": "something"}}
在JSON中

学到了一些东西:

确保您的内容类型标题

如果原始数据是JSON:Content-Type:application/JSON

我遇到了与您类似的问题:我的请求正在使用表单数据,但不是原始数据。。。在调试请求服务器端之后,我意识到我的请求内容类型是text/plain;字符集=UTF-8。。即使在侧面下拉列表中选择了JSON


希望它能为下一次节省时间

在我的例子中,一个表单数据条目被转换为一个标题,并且根本不包含在正文中。它还可以显式地设置标题,而不是输入表单数据。其他答案中的内容类型和JSON格式没有涉及。我不希望任意表单数据键以这种方式工作;本例中使用的唯一键是ID。

我也有一个API,如果我通过表单数据提交数据,并且具有以下值,则它会起作用:

key: response[comment]
value: This is a test
关键词:调查答案[答案]

值:{2456-9876-4ff7-9807-4097ed21be57:今天从邮递员处进行测试}

我试着把它转换成原始数据,所以最后我可以通过

{调查{回答{回答}json:{2ed4e729-c1fa-4ff7-9807-4097ed21be57:来自tessa的测试}}

如果您的原始数据是JSON:set Content Type:application/JSON


希望这有帮助:

使用JSONapplication/json选择raw选项

在我的例子中,url是localhost/index.php?userId=1,我使用的是原始模式,{username:abc}


然后,我将url转换为localhost/index.php?userId=1&username=abc-它使用以下json为GET和for POST工作:{userId:1,username:abc}和url localhost/index.php?userId=1&username=abc。

您知道json和www表单urlencoded实际上是不同的格式吗?我怀疑有没有办法强迫服务器从客户端解析JSON编码的有效负载。是的,我没有使用x-www-form-urlencoded,而是在Postman中使用表单数据,即JSON;-这就是我如此困惑的原因。一定有一个头球掉了什么的。