我正在通过$.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。
有关如何改善此问题的任何提示?
在这种情况下,答案是使用JSON对象的字符串表示形式。
$.post('/proxy/endpoint.json', JSON.stringify({ "query": {"test": true, "msg": "test" } }));
这证明是可行的。
感谢Ahmed El-sayed将我引向正确的方向。