2015-02-09 97 views
-1

我已經使用jQuery.Get()以及$ .Get()方法來做到這一點,但這似乎不起作用。從沒有web服務器的java/jquery使用文本文件讀取文本

<head> 

<script type="text/javascript" src="jquery-2.1.3.min.js" > </script> 

    <script language="javascript"> 
    function Read() 
    { 
     alert("start"); 
     jQuery.get('/spec.txt', function(result) 
      { 
        alert("get"); 
      if (result == 1) 
       { 
alert("1"); 
        $("body").html("<p>Specials</p>"); 
        document.getElementById("specials").innerHTML = "<H1>Specials</H1>"; 
       } 

else if(result == 0) 

       { 
alert("2"); 
        $("body").html("<p>No Specials</p>"); 
        document.getElementById("specials").innerHTML = "<H1>No Specials</H1>"; 
       } 
      }); 
    } 
    </script> 
    </head> 

<body> 

<button onclick="Read()">Specials</button> 

<div id="specials"> 

</div> 

</body> 
</html> 

我想在我的根目錄文件夾中的文本文件將只包含1或0這個值將被用來確定是否有特價或沒有(這個文本文件會從另一個改變頁)。該文本文件的值將被讀入網頁,並且將確定if語句被編程的行爲的過程。我附加了我目前使用的代碼,但我似乎無法獲得$ .get()/ jQuery.get()來執行。您會注意到我正在使用alert()方法來檢查代碼中的步驟,但它不會立即在jQuery.get()之後執行警報(「get」)。

我沒有使用我認爲是問題的網絡服務器。我只是在webroot文件夾中運行我的硬盤上的index.html。該IF語句是取決於從命名spec.txt

請裸記住我是新來使用jQuery和Java Web編碼,但我善於簡單的HTML/CSS編碼的文本文件中讀出的值火災。這是我第一次嘗試動態網頁內容,而不是靜態網站。如果這有助於您的答案,該網站最終將託管在網絡服務器上。

+0

如果您打算稍後在Web服務器上運行它,爲什麼不簡單安裝Web服務器?像Xampp這樣的事情只需要2或3次點擊。 – mainguy 2015-02-09 14:02:14

+0

如果你沒有服務器,你的webroot是什麼?一些名爲webroot的文件夾? – mainguy 2015-02-09 14:05:21

+0

最後:您應該非常高興,沒有人可以在不使用病毒的情況下從另一個頁面寫入/更改硬盤上的文件。 – mainguy 2015-02-09 14:10:54

回答

2

您不能從file://協議發出ajax請求。這是一個安全限制。

加載了file://的文件始終被視爲來自不同的域,您無法繞過此功能。

但是...如果您使用的是Chrome,只是想在本地測試它放在一個Web服務器後,您可以通過在不安全模式

path/to/chrome.exe --disable-web-security 

運行Chrome如果您正在使用禁用此功能Firefox瀏覽器。您可以輸入您的網址about:config中的然後去

security.fileuri.strict_origin_policy -> false 

它的確定僅用於本地測試。不要指望你的應用程序的用戶也將其禁用,否則你將會在上創建一個很大的安全問題。請注意,您正在禁用所有瀏覽器安全功能,並且它將對惡意程序開放。

只需安裝一個簡單的Web服務器即可獲得樂趣!

+0

你是對的,我會投你的答案。但是你不認爲給那些完全不知道他在做什麼的人提供這樣的建議是危險的嗎? – mainguy 2015-02-09 14:16:57

+1

我也這麼認爲。無論如何,這只是一個信息。但是我更新了我的答案,對安全問題更加尖銳 – nanndoj 2015-02-09 14:26:52

相關問題