使用JQUERY POST发送JSON字符串将返回403 forbidden

时间:2015-07-17 20:30:15

标签: javascript jquery json post

这是一个非常奇怪的问题,现在让我疯狂几个小时。我想使用JQUERY POST将一个JSON字符串发送到PHP。

用于发布的代码段:

<script>
$(document).ready(function(){
     $.post('/test.php',
     {
           results: '{"having"}'
     },
     function(data, textStatus) {
              alert(data);
     });
});
</script>

我不知道为什么发送单词“having”作为JSON字符串不起作用。这是一个保留字还是什么?代码很简单。那里有“test.php”文件。一切似乎都很好。

我在控制台日志中得到了这个:

POST http://domain.com/test.php 403 (Forbidden)

2 个答案:

答案 0 :(得分:3)

确实很奇怪。根据给定的信息,以下是我的暗示性问题......

  • POST是否尝试访问您应用程序中的正确URL?
  • URL名称空间是基于角色的安全性依赖吗?
  • 您的申请是否有任何CSRF,如您在请求中遗漏的安全令牌?
  • 是否有任何与安全相关的请求拦截器在搜索关键字中查找SQL查询,以禁止SQL注入? (因为having毕竟是一个SQL关键字。)

希望它有所帮助。

答案 1 :(得分:1)

尝试转义引号

$(document).ready(function(){
     $.post('/test.php',
     {
           results: "{\"having\"}"
     },
     function(data, textStatus) {
              alert(data);
     });
});