【问题标题】:How to access a .php file in a different directory using JavaScript?如何使用 JavaScript 访问不同目录中的 .php 文件?
【发布时间】:2014-12-15 13:17:04
【问题描述】:

首先,这个问题可能已经有了答案,但我一直在搜索一整天,但我找不到能帮助我解决确切问题的锻炼方法。

我是 JavaScript 和 AJAX 的新手

我正在试用目录中名为 calendar.php 的网络应用程序 C:\xampp\htdocs\projects\aptana\testapp\。 这在目录中有一个名为 calendar_script.jsscript C:\xampp\htdocs\projects\aptana\testapp\scripts\calendar_script.js 有一个函数getDetails()

//--function to get the details from the server--
function getDetails(dateName){
     request = createRequest();

     if(request == null){
         alert("Undable to create request. Please Check Internet Connection or contact service Administrator.");
         return;
     }

     var url = "getEvents.php?dateID=" + escape(dateName);
     request.open("GET", url, true);
     request.onreadystatechange = displayDetails;
     request.send(null);
 }

createRequest() 函数返回一个请求对象。 getDetails()函数在网页有点击事件时调用,即日历。

问题在于getEvents.php。如果放在目录下 C:\xampp\htdocs\projects\aptana\testapp\ 一切似乎都很好,但是如果我将此文件移动到另一个文件夹,即 C:\xampp\htdocs\projects\aptana\testapp\internals\ 并尝试通过在我的 JavaScript 代码中创建文件路径来访问该文件,它似乎不起作用。 我试过做

var base_url = window.location.origin + "\projects\aptana\testapp\internals\";
var url = base_url + "getEvents.php?dateID=" + escape(dateName);
request.open("GET", url, true);

它似乎不起作用。 我还尝试对整个文件路径进行硬编码:C:\xampp\htdocs\projects\aptana\testapp\internals\,但它似乎也不起作用。

我知道我做错了,我错过了一些东西。我怎么解决这个问题?请帮忙。 提前谢谢你。

【问题讨论】:

    标签: javascript php html ajax localhost


    【解决方案1】:
    • 使用/ 而不是\
    • 使用相对路径而不是绝对路径(这里你的根目录是C:\xampp\htdocs\projects\aptana\testapp)。

    您的代码:

    var url = "internals/getEvents.php?dateID=" + escape(dateName);
    request.open("GET", url, true);
    request.onreadystatechange = displayDetails;
    request.send(null);
    

    【讨论】:

      【解决方案2】:

      改变

      var base_url = window.location.origin + "\projects\aptana\testapp\internals\";
      

      进入

      var base_url = "projects/aptana/testapp/internals/";
      

      【讨论】:

      • 尝试在项目前添加一个斜线,就像这样:/projects/aptana/testapp/internals/
      【解决方案3】:

      所以你有 testapp/ 中的脚本和 testapp/internals/ 中的 php。 我认为你必须使用这样的东西:

      var url = "internals/getEvents.php?dateID=" + escape(dateName);
      request.open("GET", url, true);
      

      请注意/ 而不是\

      【讨论】:

      • 是的,据我所知,这应该可行,我也尝试过。但它不起作用。
      • 您是否使用了斜线而不是反斜线?因为浏览器 (javascript) 使用 unix 约定,所以它们使用斜杠而不是 dos 约定(反斜杠)。
      • 您能否在浏览器中打开网络控制台,告诉我们对getEvents.php 的请求的状态如何? 404? 403? 500?
      • @laserbeamer,是的,我尝试了正斜杠,它不起作用。
      • @gnucki,你能帮我看看我应该怎么做吗?我真的不知道。
      猜你喜欢
      • 1970-01-01
      • 2013-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      • 2013-12-11
      • 2021-10-28
      相关资源
      最近更新 更多