AJAX调用源自哪个目录?

时间:2014-02-07 15:40:38

标签: javascript php jquery ajax

如果我在外部JavaScript文件中有以下代码;如果我正在调用的PHP文件位于同一目录中,是否必须添加“../directory/filename.php”? php脚本没有运行,我已经在另一个帖子中完整地发布了脚本,但我认为它可能与我的$ .ajax调用中的“URL”有关。

$.ajax({
    type: 'POST',
    url: '../script/mail.php',
    data: {fname:firstName, lname:lastName, email:emailVal, comment:comments, fileName:fileName},
    success: function(){
        $('form').each(function() {
            this.reset();
        });
    }
});

上一个问题: PHP Mailer script not completing after ajax call and form submit

5 个答案:

答案 0 :(得分:2)

JavaScript程序中的网址(嵌入在网页中)与网页的网址相关。

  

如果我调用的PHP文件位于同一目录中,我是否必须添加" ../ directory / filename.php"?

如果filename.php与HTML文档位于同一目录中,那么不,您可以filename.php

如果filename.php与外部JS文件位于同一目录中,那么......也许,但您需要查看HTML文档的位置,而不是JS文件。

答案 1 :(得分:1)

与链接相同的组成

答案 2 :(得分:1)

我通常先编码我的no-js后备。所以你有一个触发你的函数的链接首先被调用,你知道它到了正确的位置:

<a href="script/mail.php" id="send-mail" />

然后你可以直接从链接中抓取网址:

//add click listener
$('#send-mail').click(function(e) {
  e.preventDefault();

  //get your link
  var myUrl = $(this).attr('href');

  //do something ajaxy
  $.ajax({
    type: 'POST',
    url: myUrl,
    data: {somedata: data},
    success: function(){
      //some success actions
    }
  });
}

对于加分,你可以使用一些php来生成一个绝对的URL,用于你的链接。

答案 3 :(得分:0)

对我来说,我总是使用来自web目录的相对路径。

答案 4 :(得分:0)

../将带您回到目录

./为您提供相对目录

~/为您提供/ home / user目录

/为您提供根目录

该目录是相对于调用它的文件而不是.js文件,如果它在另一个目录中。

如果您不确定,您可以先测试,先给它完整的网址http://<file location>