0

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

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

但是,我刚刚开始403 Forbidden从服务器接收错误。经过调查,我发现.serialize() 函数将空格替换为“+” ,并且如果我在没有“+”的情况下重新发送数据,我将不再收到错误。

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

更多信息:

- 使用 LITESPEED 服务器,

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

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

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

(注:以上数据示例是取自 Chrome 控制台的 'source' Form Data)

4

1 回答 1

0

当你说,

将我的php代码减少到并且问题仍然存在

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

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

于 2018-06-15T13:53:21.423 回答