我在Mac上做了一些快速的Ajax实验。 我的script / main.js文件夹中有以下javascript代码。
'use strict';
var button = document.getElementsByClassName('update');
button[0].addEventListener('click', function() {
worker.updateCustomer();
});
var worker = {
updateCustomer: function(customerInfo, cb) {
$.ajax({
url: 'data/customer.json',
type: 'POST',
}).done(function(data) {
log('response', data);
}).fail(function() {
log('failed');
});
}
};
这是我的工作目录结构:
每当我点击按钮时,我都会得到以下信息:
POST localhost:9000/data/customer.json 404 (Not Found)
failed
话虽这么说,但有一些事情需要提及:
我曾经做过PHP开发,所以要访问我必须转到Sites/
的{{1}}文件夹下的项目。
目前在我的计算机上,在浏览器中输入localhost/~username/folder/file.php
会返回以下内容:
localhost
我查看了httpd.conf并修改了
Forbidden
You don't have permission to access / on this server.
到
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
现在得到:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all #change here
</Directory>
我认为我的问题是因为直接访问我的localhost文件夹而不添加Not Found
The requested URL / was not found on this server.
是不可能的。
请告知。
答案 0 :(得分:1)
下面:
POST localhost:9000/data/customer.json 404 (Not Found)
failed
您应该知道,在使用HTTP请求时,PHP服务器希望获取现有文件并将其传输到客户端(如果此文件具有.php扩展名 - 执行脚本并发送stdout)。此外,PHP允许您通过.htaccess文件配置进行内部重定向。例如:
(1)ErrorDocument 404 /path-to-file
(如果在服务器上找不到请求的文件)
(2)ErrorDocument 403 /path-to-file
(如果在服务器上找到了请求的文件,但禁止直接访问)
我建议你使用这两种方法。使用以下内容在/ data /上创建.htaccess文件:
deny from all
ErrorDocument 403 /data-manager.php
ErrorDocument 404 /data-manager.php
在顶层目录('public-html')上创建'data-manager.php'。通过php脚本,您可以使用:
<?php
echo 'Requested url was: ' . $_SERVER['REQUEST_URI'];
?>