以下函数应序列化表单数据并将其发送到服务器上进行处理。
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)