簡體   English   中英

AJAX調用源自哪個目錄?

[英]What directory does an AJAX call originate?

如果我在外部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();
        });
    }
});

上一個問題: ajax調用和表單提交后,PHP Mailer腳本未完成

JavaScript程序(嵌入在網頁中)中的URL相對於頁面 URL。

如果我要調用的PHP文件位於同一目錄中,是否必須添加“ ../directory/filename.php”?

如果filename.php與HTML文檔位於同一目錄中,則否,您可以執行filename.php

如果filename.php與外部JS文件位於同一目錄中,則可能是…,但您需要查看HTML文檔所在的位置,而不是JS文件。

與鏈接的href組成相同

../將帶您回到目錄

./為您提供相對目錄

~/為您提供/ home / user目錄

/為您提供根目錄

該目錄相對於正在調用它的文件,而不是.js文件(如果它在另一個目錄中)。

如果不確定,可以先通過提供完整的URL http://<file location>

我通常會先編寫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。

對我來說,我總是使用Web目錄中的相對路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM