JQuery Post将json数据更改为查询字符串

问题描述 投票:0回答:2

我正在通过$.post()执行JSON POST,但似乎将我的POST内容从JSON更改为查询字符串参数

我将以下内容发布到端点:

$.post('/proxy/endpoint.json', { "query": {"test": true, "msg": "test" } });

处理请求的服务器显示以下日志:

ERROR - Bad POST params: query%5Btest%5D=true&query%5Dmsg%5Btest

请求流:

JavaScript-> IIS重写代理-> Nginx-> Java服务器端点,e.g. localhost:4000/endpoint.json

NOTE:我已经通过Postman直接向IIS Server测试了相同的POST请求,效果很好。因此,只能是导致此问题的我的Jquery。

有关如何改善此问题的任何提示?

jquery http-post
2个回答
1
投票

返回jQuery.post并传递正确的params对象

例如,将代码更改为

$.post('/proxy/endpoint', {"test": true, "msg": "test" });

0
投票

在这种情况下,答案是使用JSON对象的字符串表示形式

$.post('/proxy/endpoint.json', JSON.stringify({ "query": {"test": true, "msg": "test" } }));

这证明是可行的。

感谢Ahmed El-sayed将我引向正确的方向。

© www.soinside.com 2019 - 2024. All rights reserved.