2013-09-27 67 views
0

我是jQuery/Ajax領域的新成員,我的小測試功能無法正常工作。而我的頁面也refreshingcan任何一個可以幫助我爲什麼我的jquery ajax在我的頁面和頁面上不工作也在刷新

<script type="text/javascript" > 
 
$(document).ready(function() { 
 
    $("#ser_itm").change(function() { 
 
     var id=$(this).val(); 
 
     var dataString = 'id='+ id; 
 
     alert(dataString); 
 
     $.ajax({ 
 
      type: "POST", 
 
      url: "bar_pull.php", 
 
      data: dataString, 
 
      cache: false, 
 
      success: function(html) { 
 
       $("#tbl").html(html); 
 
      } 
 
     }); 
 
    }); 
 
});

+6

你不應該使用絕對路徑的文件,則必須在服務器上運行 – Shadow

+1

此外,還需要對功能的引用傳遞到處理程序,不是函數的結果 - 刪除最後的括號,例如。 ('click',getDetailsFromServer);' –

回答

2

所以我要去嘗試,並更清楚地解釋這些要點:


您不能訪問C:\Users\yah\Desktop\text.txt。這是一個server side path,你的JavaScript在client side上運行。因此,這需要一個可以在瀏覽器中瀏覽的路徑,如/pathinURL/text.txt。你如何做到這一點取決於你的託管技術等


你的回調也是錯的,

$('.linkDetails').on('click', getDetailsFromServer()); 

&

success: postToPage() 

這些將執行的時候都功能(事件實際上綁定了函數結果),而不是事件發生時。爲了使這些工作,你需要刪除括號:

$('.linkDetails').on('click', getDetailsFromServer); 

&

success: postToPage 

這則掛接實際功能的函數指針,因此實際的功能將被解僱的時候,你想他們是。

所以您的最終代碼如下:

$('.linkDetails').on('click', getDetailsFromServer); 

function getDetailsFromServer() { 

    $.ajax({ 
     type: 'GET', 
     url: '/someURL/text.txt', 
     success: postToPage 
    }); 
} 

function postToPage(data) { 

    $('.textDetails').text(data); 
    console.log(data); 
} 
+0

所以,我上傳文件我的本地主機,它終於有效。哇,我現在真的覺得有點蠢。然而,我認爲我必須練習很多,直到我真的可以創建自己的網頁。感謝所有人的真正快速幫助。 –

+0

不要覺得愚蠢,你會學到更好。每個人在某個時候都會犯同樣的錯誤。 – Liam

+0

感謝您的好話。但我還有一個簡短的問題 - 有沒有什麼政策可以幫助我們更好地理解這個話題? –

0

same origin policy通過瀏覽器來實現防止本地文件系統的網址...如果這個頁面和文件都在同一個文件夾,它可能工作。

SOP for file URI爲FF

2

什麼阿倫P佐尼說的很對!但你的代碼有另一個probloem

$('.linkDetails').on('click', getDetailsFromServer); 

嘗試了上述

+1

與ajax回調相同的問題;) – Archer

+2

你的權利,但你需要更清楚地解釋這個 – Liam

3

傳遞給函數,函數調用的不結果:

$('.linkDetails').on('click', getDetailsFromServer); 

應用相同的,以你的AJAX成功回調:

success: postToPage 

而且,getDetailsFromServer()函數需要在將其綁定到事件。在撥打.on('click', ...)之前移動功能聲明。

相關問題