jquery .serialize()用+替换空格导致Ajax调用中来自LITESPEED服务器的403 Forbidden Error

时间:2018-06-15 09:37:10

标签: php jquery ajax forms litespeed

以下函数应序列化表单数据并将其发送到服务器上进行处理。

function postIt() {
   var postData = $("#myForm").serialize();
   $.ajax({
       type: 'POST',
       data: postData,
       url: 'php/makeTopics.php',
       success: function(data) {
            /* do stuff*/
       }
   })
}

但是,我刚刚开始从服务器收到 403 Forbidden 错误。经过调查,我发现 .serialize()函数用" +" 替换空格,如果我重新发送没有&#的数据34; +" s我不再收到错误。

我做错了什么?这是客户端还是服务器问题?

更多信息:

- 使用LITESPEED服务器,

- 我已经将我的PHP代码减少到<?php echo("Hello World!"); ?>并且问题仍然存在,所以我认为它必须是网络服务器中的其他东西。此外,这是新行为 - 我没有在任何一端更改代码来触发它。

- 工作数据示例:tn=factorystore&tkw1=manufacturers&tkw2=brickandmortar

- 工作数据示例:tn=factory+store&tkw1=manufacturers&tkw2=brick+and+mortar

(注意:以上数据示例是从Chrome控制台获取的“数据来源”表格数据)

1 个答案:

答案 0 :(得分:0)

当你说,

  

将我的PHP代码减少到,问题仍然存在

你的意思是,https://yourdomain.com/hello.php返回403?

通常,您可以要求您的主机检查服务器错误日志以找出403错误的原因。 403可能由多种原因引起。例如mod_security,或对某些URL,文件夹等的某些限制。