2013-03-28 90 views
3

我真的不明白這一點。我有以下的「得到」的請求:阿賈克斯和相關網址

$.ajax({ 
    url: "api/getdirectories/", 
    dataType: 'json', 
    success: function (data) { 
     // Do stuff 
    } 
}); 

這是在網頁中投放了過來我的臨時服務器,http://atlas/Reporter。在我的本地開發框中,這是可行的,在看着小提琴手時,我看到了正確的URL http://localhost/Reporter/api/getdirectories。然而,在登臺服務器上,請求是http://atlas/api/getdirectories,這是無效的,我得到一個404錯誤。

爲什麼我的路徑的「記者」的一部分被臨時服務器上下降了嗎?在查看文檔時,URL,baseURI,documentURI全部爲http://atlas/Reporter,域爲atlas。與我的本地開發框完全相同(除了它是'localhost'而不是'atlas'。)

這個問題困擾了我一段時間了。我想我已經想通了,一切都很好,那麼我再次遇到它,我不認爲這是一個相同的原產地政策問題,因爲我正在請求來自同一網站的數據來源網頁

那麼,完整的url究竟是如何確定要求?這似乎並不爲上述被串聯到我相對URL中提到的文件變量之一...它是如何工作的呢?

Edit: Removed the '/' from the URL as it is distracting from the real issue- behavior is the same with or without it.

+1

應該不是你的URL是'API/getdirectories /'而不是'/ API/getdirectories /'? –

+1

你有沒有嘗試url:「api/getdirectories /」, – Kivylius

+0

我試過'api/getdirectories',效果相同。 – Nicros

回答

0

檢查您的服務器上的document_root,或者是否聲明瞭一些虛擬服務器

+0

這很有趣 - 除了我不知道如何檢查這個在我的IIS服務器上......我在哪裏可以找到它? – Nicros

+0

我查看了我的網站的IIS設置 - 我看到的唯一的事情是「高級設置」中的「虛擬路徑」。但是這個值在我的登臺服務器和我的本地開發箱上是一樣的。 :( – Nicros

+0

對不起,我不知道IIS,但必須有一個地方的配置文件......這是肯定 – mlwacosmos

4

/在URL的開始處使其成爲絕對。

你可能需要一個相對URL,即

api/getdirectories/ 

getdirectories/ 

../api/getdirectories/ 
+0

無論如何,'Reporter'部分缺失。在我的情況下,URL結束是相同的(錯誤)的地址。 ? – Nicros

+0

什麼是你的HTML文件的路徑和你用什麼網址INT瀏覽器中打開它 –

+0

正確的路徑是通過'http://地圖集/記者/ API/getdirectores'這是託管在web.api應用我服務器。 – Nicros

8

不知道這是否是相關的,但是,當jQuery的AJAX建立相對URL ,如果當前頁面網址以「/」結尾或不是


如果你調用一個頁面沒有結束/

http://atlas/Reporter 

從該網頁上的Ajax調用的相對URL忽略了最後一段:

http://atlas/_relative_url_passed_to_ajax 

如果結束與/

http://atlas/Reporter/ 

相對URL都是使用的最後路徑段Reporter

http://atlas/Reporter/_relative_url_passed_to_ajax 
0
<html> 
    <head> 
     <title>tst</title> 
    </head> 
    <body> 
     <h1>Data list</h1> 
     <table border="1" width="50%" id="tblData"> 
     <tr> 
      <th>Id</th> 
      <th>Name</th> 
      <th>Location</th> 
     </tr> 
     </table> 
     <script src="jquery.min.js"></script> 
     <script> 
     $(function(){ 
      $.ajax({ 
       url:'datas.txt', 
       type:'post', 
       datatype:'json', 
       success:function(response){ 
        var myDataBunch = $.parseJSON(response); 
        var txt = ''; 
        for(var i=0; i<myDataBunch.length; i++){ 
         txt+= '<tr><td>'+ myDataBunch[i].id +'</td><td>'+ myDataBunch[i].name +'</td><td>'+myDataBunch[i].location+'</td></tr>' 
        } 
        $('#tblData').append(txt); 
       } 
      }) 
     }); 
     </script> 
    </body> 
</html> 
+0

編輯您的答案propery。@SheoSagar –