在apache服务器上构建一个站点,现在该站点已移至运行php 7.2的IIS服务器上的最终目录。我在网站上使用基于jQuery的ajax发布请求,将表单数据发送到后端并更新页面。这在apache服务器上效果很好,但是一旦我在新的IIS服务器上安装了代码和数据库,它就停止了工作。开发者控制台中的“网络”标签显示该文件已被命中,并且状态为200。标头正确显示了表单字段,但是文件响应中没有任何内容(应该只是post数组的回显。
这是ajax请求:
$.ajax({
type: 'get',
url: '/ajax/users.php',
data: 'createUser=1&' + $("form[name=addUser]").serialize(),
success: function(msg) {
console.log(msg);
}
});
这是/ajax/users.php文件:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
echo "<pre>"; print_r($_REQUEST); echo "</pre>";
?>
标题:
Request Method: POST
Status Code: 200 OK
RESPONSE:
Content-Length: 169
Content-Type: text/html; charset=UTF-8
Date: Thu, 27 Sep 2018 05:59:20 GMT
Server: Microsoft-IIS/8.5
X-Powered-By: PHP/7.2.7
REQUEST:
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Connection: keep-alive
Content-Length: 95
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Host: somehost
Origin: http://somehost
Referer: http://somehost/users
如果我直接导航到该文件并将表单数据放入URL,则该页面将按预期工作,仅在通过ajax请求(获取或发布)且仅在此IIS服务器上时才出现此问题。在旧的Apache上,代码按预期工作。
关于设置的任何想法我可能会丢失吗?还是为什么AJAX无法正常工作?我不亲自控制服务器,但是可以通过电子邮件与该人访问。