-1

我在我的 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');
        });
    }
};

这是我的工作目录结构:

  • 索引.html
  • js/jquery.js
  • js/main.js

每当我单击按钮时,我都会得到以下信息:

POST localhost:9000/data/customer.json 404 (Not Found)
failed

话虽如此,有几点需要说明:

我以前做 PHP 开发,所以要访问我Sites/必须去的文件夹下的项目localhost/~username/folder/file.php

目前在我的机器上,localhost在浏览器中输入会返回以下内容:

Forbidden
You don't have permission to access / on this server.

我查看了 httpd.conf 并进行了修改

<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>

现在得到:

Not Found

The requested URL / was not found on this server.

我相信我的问题是由于直接访问我的 localhost 文件夹而不添加/~username/..是不可能的。

请指教。

4

1 回答 1

1

这里:

POST localhost:9000/data/customer.json 404 (Not Found)
failed

您应该知道,当使用 HTTP 请求时,PHP 服务器期望获取现有文件并将其传输到客户端(如果此文件具有 .php 扩展名 - 执行脚本并发送标准输出)。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'];
 ?>
于 2013-08-06T05:09:30.743 回答