2012-06-22 142 views
0

我在jQuery中的ajax調用不起作用。這裏是的jsfiddle:http://jsfiddle.net/jefffabiny/czZKM/jquery和ajax返回錯誤

我page2.html文件很簡單:

<p>page 2</p> 

有誰看到這個問題?所有錯誤都是'錯誤'。

編輯 我的jquery位於我的根目錄的子文件夾中。 [我的根文件夾(我的索引是)] >> [我的js文件夾(我的jquery是)]。所以,在文件結構中,'../'語法應該是正確的。我想,大聲笑。

+0

當的jsfiddle運行它表明:GET http://fiddle.jshell.net/page2.html 404(未找到) 什麼是控制檯輸出時你在你的項目中運行這個代碼? –

+1

您是否檢查路徑「../ page2.html」是否正確?可能是相對/絕對路徑的問題。 –

+0

你不能在jsFiddle中測試這段代碼,因爲它無法加載你的'page2。html'。你需要在你的網絡服務器上進行測試。 –

回答

1

錯誤是由於找不到page2.html而引起的。

getContent('../page2.html'); 

這條線是cuplrit。

我假設路徑不正確。

有關的jsfiddle您將需要提供一個絕對路徑(http://www.example.com/page2.html)

+0

我的jquery位於名爲js的文件夾中,這是我的根目錄中的一個子文件夾。所以︰根(我的index.html是)> js(我的jquery是)。 '../'應該對文件結構中的某個級別是正確的,還是我錯了? – smilebomb

+0

更正jsFiddle以提供絕對路徑,然後我們將能夠爲您提供幫助。 – gordyr

+1

您無法使用JavaScript加載任意頁面。您需要遵循同源策略。絕對路徑在這裏不起作用。 –

0

你的路徑可能不存在。參加螢火網絡選項卡或Chrome看看,看看,如果你得到一個404。此外,我會建議使用內置的那正是你正在尋找非常簡潔並jQuery的功能:

<p class="test"><a href="#">I will load text on click.</a></p> 
<div class="contentArea">test</div> 

<script type="text/javascript"> 
$('.contentArea').load('../page2.html'); 
</script> 
0

試圖調用的getContent像下面這樣:

getContent('/page2.html'); 

它會假定文件在根目錄下。

-1

AJAX調用不能引用的相對路徑(即「../」),它必須是絕對的(即,的‘http://localhost/page2.html’)。

+0

這根本不是真的。 – Terry

0

OP:不要在同源策略和的​​jsfiddle問題太趕上了。

檢查呼叫是否在本地工作。下面的代碼就可以了(顯然取代C:\與任何本地驅動器或根文件夾是):

C:\test\page2.html 
C:\test\subdir\test.js 
C:\test\subdir\test.html 

page2.html

<p>page 2 content</p> 

test.js:

$.ajax({ url: '../page2.html', 
     success: function(resp) { $('body').append(resp); } 
}); 

測試。 html:

<html> 
<body></body> 
</html> 

的test.html(後AJAX調用):

<html> 
<body><p>page 2 content</p></body> 
</html>