2013-06-26 44 views
0

我正在做一個網頁的前端,現在我需要一些json我不做後面所以我做了一個叫做map.json的文件並將它放在我的服務器。

我正在使用node.js作爲服務器,因此在公用文件夾中我創建了一個名爲jason的新文件夾並將文件保存在那裏。

現在我正在對此文件進行ajax調用,但程序沒有找到它,並且當我從google chrome上公開瀏覽時,我沒有看到json文件夾。

我該怎麼做才能看到這個文件並上傳它,因爲它是一個ajax調用服務器?

這裏是我的jQuery代碼,它在一個文件中的公共/ JavaScript的:

$.ajax('/../json/map.json', { 
    cache: false, 
    dataType: "json",   
    success: function(json) { ... code ... } 
    }); 

我真的不知道我怎麼還是什麼文件應在noje.js修改

謝謝!

回答

1

使用的URL路徑在技術上無效。繼領先的/後,..將嘗試訪問不存在的域根路徑的父目錄。

雖然瀏覽器可以簡單地忽略..,你還是應該選擇一個或其他 - 無論是從指定根的路徑:

$.ajax('/json/map.json', { 
    // etc. 
}); 

或相對於當前頁面的URL路徑(例如, /some/page):

$.ajax('../json/map.json', { 
    // etc. 
}); 

你還指出,該文件夾命名爲 「jason」,而請求包括/json/...。一個可能只是一個錯字,但要確保它們匹配。

而且,假設你使用的​​3210中間件,URL將需要匹配指定的前綴(或沒有一個):

app.use(express.static(__dirname + '/public')); 

// $.ajax('/json/map.json', ...); 
app.use('/public', express.static(__dirname + '/public')); 

// $.ajax('/public/json/map.json', ...); 
+0

感謝您的回答我corercted網址並加入'app.use(express.static(__ dirname +'/ public'));'到app.js但它仍然不工作,你是正確的文件夾是json不jason:p所以我應該添加到app.js是這樣的:'app.use(express.static(__ dirname +'/ public/json'));'? –

+0

@AnaFranco我猜只是'__dirname +'/ public''。你給static()的路徑就是它的起始目錄,所以'/ json/map.json'的URL會映射到'__dirname +'/ public/json/map.json'。 –

+0

它發現它現在感謝! –