2015-02-09 89 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