簡體   English   中英

XMLHttpRequest對象的打開方法的相對路徑

[英]relative path for open method of a XMLHttpRequest object

在包含Ajax請求的JavaScript文件中,URL相對於什么? 我有包含目錄alpha和bravo的www目錄。 alpha中的JavaScript文件以及包含該文件的HTML文件,以及以出色的方式處理請求的PHP。

在JavaScript文件中,我有xmlhttp.open("GET", "CheckServer.php?name="+name,true); 但我認為CheckServer.php不正確。 我已經嘗試過../bravo/CheckServer.php但是它不起作用。

我沒有使用JQuery,而是在使用WAMP。

另外,我可以使用任何故障排除工具來查看是否首先訪問了用於處理請求的PHP頁面?

編輯:我打開了控制台,它說我在JavaScript文件中調用的函數未定義。 僅當我將.js文件移動到其他目錄時,才會發生這種情況。 (我適當地修改了<script>標記: <script type="text/javascript" src="../alpha/Check.js">

編輯2:我認為WAMP存在問題,因為我將完全相同的文件/文件夾復制到了桌面,並且一切正常。

它是相對的,基於調用它的頁面的當前位置。 它與加載JavaScript的位置無關。

打開控制台,查看Ajax請求[控制台或網絡選項卡],您將看到它所請求的路徑。

這是一個URL,那些與目錄本身無關。 它們可能被映射到服務器上的目錄,並且通常映射到服務器上,但客戶端永遠無法確定它並且不在乎。 URL相對於當前URL (您在瀏覽器地址欄中看到的內容)。

因此,問題不是“服務器上的CheckServer.php位於何處”,而是“如何從客戶端訪問它”。

如果是這樣的:

http://example.com/alpha/index.html
http://example.com/bravo/CheckServer.php

精細。 使用相對URL。

但是,如果像這樣:

http://alpha.example.com/index.html
http://bravo.example.com/CheckServer.php

然后變得復雜。 您將不得不研究CORS (跨域資源共享),因為AJAX通常無法在不同的域中工作。

哦,如果CheckServer.php根本無法訪問...,您可能可以想象答案。

暫無
暫無

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

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