【问题标题】:How to create JSON response to AJAX request locally without WWW server如何在没有 WWW 服务器的情况下在本地创建对 AJAX 请求的 JSON 响应
【发布时间】:2014-10-09 06:50:29
【问题描述】:

我想练习使用 JSON 和 AJAX,只使用 HTML 页面(没有 PHP,没有 asp.NET,没有 ruby​​,没有本地安装的 Web 服务器)。我想创建一个网页,它将生成 JSON 数据作为测试 AJAX 请求的结果。

有可能吗?

添加: 让我们稍微改变一下,假设我有一个网页(没有 asp.net,没有 php)。 如何创建网页,将输出标头设置为的 Json 数据 header('Content-Type: application/json');

【问题讨论】:

  • 不。如果您没有服务器也没有服务器端语言,那么究竟会创建什么数据?您可以使用静态 JSON 文件(这可能与练习目的一样好)或者您可以仅使用 JS 生成 JSON,但是在没有任何接收它的情况下进行 AJAX 调用是没有意义的。

标签: html ajax json


【解决方案1】:

您可以将 AJAX 请求 url 指定为“file:///D:/test.txt”

我认为 IE 允许,而 Chrome 不允许。而且我不确定是否所有版本的 IE 都支持它。

当然,这种“响应”将是静态的。它不会根据您的请求输入而改变。

【讨论】:

    【解决方案2】:

    JSON 只是 javascript 对象。您可以做的是,而不是调用真正的 ajax 请求,而是执行一个获取本地声明的 json 的模拟请求。例如

    jQuery(具体实现)

    $.get("ajax/test.html", function( data ) {
      console.log(data);
      alert( "Load was performed." );
    });
    

    模拟实现

    创建一个假的json“工厂”

    var MockJson = (function () {
      return { "mockObject" : "mockValue" };
    })();
    
    console.log(MockJson);
    

    当然我的例子很简单,你可以使用响应来操作 DOM 或在某处显示值。

    【讨论】:

    • 我正在尝试这个解决方案,但 MockImplementation 应该放在 ajax/test.html 文件中,对吧? TH代码应该是这样的?
    • 你无法通过 ajax 访问系统文件,浏览器内置了跨源安全策略。您可以出于测试目的禁用它,但我回答的目的是,您通常通过 ajax 从服务器获取数据(json),为什么没有来自服务器的模拟响应并预先声明它,因为您没有'没有网络服务器
    • MockJson 必须额外打印?
    • 您实际上可以“托管”您的 html 文件并创建一个包含 json 的 .json 文件,然后使用 ajax 获取它。如果您真的想通过 xmlhttprequest 进行检索,那应该可以。但是为了简单起见,为什么不直接声明一个 json 对象并假设它来自服务器呢?
    • 我稍微改变一下问题。感谢您的回答
    猜你喜欢
    • 2016-04-28
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 2012-10-29
    • 2012-10-11
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    相关资源
    最近更新 更多