You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何加载外部JSON文件?注意:外部文件可能受服务器设置限制

如何加载外部JSON文件并填充HTML表单?

先给大家准备好通用的HTML表单结构,下面三种填充方式都会基于这个表单来实现:

<form id="datas-from-json">
  <div class="form-group">
    <label class="form-control">Name:</label>
    <input name="nameCustomer" class="form-control" type="text" autofocus>
    <!-- 其他表单字段省略,注意字段的`name`属性要和JSON的key一一对应 -->
  </div>
</form>

接下来分享三种填充方案,同时也会说明加载外部JSON时可能遇到的拦截问题:

1. 用本地JSON对象直接填充表单

这种方式完全不需要加载外部文件,直接在脚本里定义JSON数据,适合快速测试或者静态数据场景:

// 定义本地JSON数据
var json = {
  "nameCustomer": "Madmann",
  "surnameCustomer": "Max",
  "room": "32322",
  "telephone": "223231",
  "email": "info@blabla.com",
  "website": "www.blabla.com",
  "address": "Main Street 422",
  "sector": "1A"
};

// 遍历JSON数据填充对应表单字段
for(key in json) {
  if(json.hasOwnProperty(key)) $('input[name='+key+']').val(json[key]);
}

2. 用本地JSON文件填充表单

如果你的JSON数据存在本地文件(比如data.json)里,可以用jQuery的getJSON方法加载。这里要注意两点:一是文件路径要正确,二是必须在服务器环境下运行(不能直接双击打开HTML文件,否则浏览器会限制本地文件访问):

$(document).ready( function() {
  $.getJSON('data.json', function(data) {
    for(key in data) {
      if(data.hasOwnProperty(key)) $('input[name='+key+']').val(data[key]);
    }
  });
});

data.json的内容就是上面定义的JSON对象即可。

3. 用外部JSON文件填充表单

加载外部域名下的JSON文件时,最容易遇到服务器拦截问题——这是浏览器同源策略的限制:如果外部服务器没有配置CORS(跨域资源共享)响应头,浏览器会直接拦截请求,导致无法获取数据。如果对方服务器已经开启CORS,就可以用下面的代码:

$(document).ready( function() {
  $.getJSON('http://www.example.net/data.json', function(data) {
    for(key in data) {
      if(data.hasOwnProperty(key)) $('input[name='+key+']').val(data[key]);
    }
  });
});

如果遇到拦截问题,你可以联系外部服务器管理员开启CORS,或者通过自己的后端服务器做代理转发请求(这样就不会触发跨域限制了)。

内容的提问来源于stack exchange,提问作者Kiwi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:31:41