【问题标题】:Get remote JSON data using local HTML file (using JavaScript - jQuery)使用本地 HTML 文件获取远程 JSON 数据(使用 JavaScript - jQuery)
【发布时间】:2010-02-11 12:42:24
【问题描述】:

我只是在我的桌面上使用 JavaScript(使用 jQuery)制作了一个带有本地 HTML 文件 (checker.htm) 的小实用程序,它每 10 分钟从我的网站请求数据。如果它找到它,那么它什么也不做,否则它会提醒我。

我面临的问题是:我似乎无法从本地 HTML 文件 c:\checker.htm:

使用 POST 或 GET
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript"></script>

<script type="text/javascript">
$(document).ready(function(){
$.post("http://www.mysite.com/st/prod_json.php?products_id=15",{},function(data){alert(data);},"text");
});
</script>

我尝试过使用 POST 或 GET 并使用以下选项:“text”/“json”——所有结果都相同:只有一个空白弹出窗口。

我最好的猜测,这是 JavaScript 权限问题吗?

有什么解决办法吗?

【问题讨论】:

    标签: javascript jquery ajax post get


    【解决方案1】:

    您必须为 $.post() 使用相对 URL。否则浏览器将拒绝发出 Ajax 请求以防止跨站脚本。

    今天早些时候有一个相关问题:“Get an XML file using Ajax”,其中的答案描述了一些可能的解决方法。

    【讨论】:

    • 问题中提到文件是本地的,所以是源问题。
    • 我终于用我的本地 wamp 服务器解决了这个问题。我制作了一个本地 php 脚本,该脚本将使用 cURL 和调用 php 脚本的 javascript 获取我需要的数据。
    【解决方案2】:

    如果您尝试从其他域获取数据,则需要使用 JSONP 来接收它。

    【讨论】:

      【解决方案3】:

      Same Domain Origin Policy。一种解决方法是编写托管在同一域上的服务器端脚本,并将其作为远程域的代理。恕我直言,使用纯 JavaScript 是不可能实现的。

      【讨论】:

      • 或者你可以把它做成一个浏览器扩展——它们可以声明自己的权限,并且不需要太多额外的代码。
      猜你喜欢
      • 2013-05-02
      • 1970-01-01
      • 2014-04-17
      • 1970-01-01
      • 2016-03-10
      • 1970-01-01
      • 2013-07-30
      • 2018-10-24
      • 2023-02-19
      相关资源
      最近更新 更多