代码之家  ›  专栏  ›  技术社区  ›  esqew

是否有任何方法可以对公共HTML以上的文件进行Ajax调用?

  •  3
  • esqew  · 技术社区  · 14 年前

    我正在编写一个脚本,让我的用户打开页面,投票支持我们的网站,然后获取该网站上某些受限内容的密码。但是,我计划将密码存储在公共HTML之外的文件中,这样就不能直接从源代码读取密码。

    是否有任何方法可以对公共HTML以上的文件进行Ajax调用?我不想Ajax到一个公共HTML中的文件来读取该文件,它只会破坏目的。

    5 回复  |  直到 14 年前
        1
  •  3
  •   David Thomas    14 年前

    不是直接的,不,坦白地说,感谢上帝(因为JS是在客户端执行的,客户端应该 从未 可以访问上面的Web服务器 public_html )

    但是,可以使用Ajax调用PHP脚本 里面 可以访问文档的Web根目录 外部 Web根目录的。这样,您仍然可以使密码不被公众接触,但仍然允许您的用户使用它。

    缺点是密码可能会在Ajax调用中到达客户端(这取决于Ajax调用的功能)。基本上,如果JS可以访问密码,那么任何感兴趣的用户也可以。

        2
  •  1
  •   arbithero    14 年前

    不,你不能那样做。

    Web服务器不允许您这样做。

    此外,公开对服务器上非公共HTML文件的访问也是非常不安全的。

        3
  •  0
  •   burkestar    14 年前

    不,不能对Web服务器不提供服务的文件进行Ajax调用(我假设上面的文件没有apache别名或虚拟目录设置)。

    要完成您要做的事情,请创建一个脚本(php?)在Ajax调用的站点上,此脚本将:

    1. 在系统上的任何位置读取密码文件(假定该文件具有正确的文件权限)
    2. 由于无法检索脚本的源代码,因此将密码嵌入脚本本身。
        4
  •  0
  •   Alex Wayne    14 年前

    不。Ajax请求只是一个请求,就像从服务器加载资源的任何其他请求一样。唯一的区别是,它在已经加载的页面上向javascript公开结果,而不是加载新页面。所以,如果一个Ajax请求能够得到这个安全文件,任何人都无法做到。

    您可以用一些Web应用程序编程语言设置一个代理脚本,从磁盘中获取文件并将其发送给您。但这与将文件放在公共目录中没有太大区别。

    你可能需要重新考虑一下你的方法。

        5
  •  0
  •   kafuchau    14 年前

    为什么不对服务器上的某个视图函数执行Ajax调用,该函数可以访问所需的文件,然后将任何数据返回到Ajax请求?