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

jQuery调用NWS点位GET请求返回400错误问题咨询

问题原因

你代码中设置了cache: false,jQuery会自动给GET请求URL末尾追加时间戳查询参数_=[毫秒级时间戳]用来强制跳过浏览器缓存,但NWS的api.weather.gov接口不允许传入未定义的查询参数,因此直接返回400错误。你直接在浏览器地址栏访问URL时没有这个额外参数,所以可以正常拿到返回结果。

解决方法

方案1:移除cache配置(最简单)

jQuery AJAX默认对JSON类型的请求开启缓存,不需要额外配置cache: false,直接删除该配置项即可解决参数追加问题,修改后的代码如下:

$.ajax({
    url: "https://api.weather.gov/points/39.5,-105.5",
    dataType: "json",
    // 可选:添加User-Agent标识请求来源,符合NWS接口要求避免被拦截
    headers: {
        "User-Agent": "你的应用名称/版本"
    }
  })
    .done(function(res) {
      // 注意:返回结果是JSON对象,不能直接插入DOM,可先序列化或按需取字段
      $( "#results" ).append( JSON.stringify(res, null, 2) );
    });

方案2:需要禁用缓存的场景

如果你确实需要避免浏览器读取旧缓存,不要使用cache: false参数,改为在请求头中添加缓存控制字段,不会额外追加查询参数:

$.ajax({
    url: "https://api.weather.gov/points/39.5,-105.5",
    dataType: "json",
    headers: {
        "User-Agent": "你的应用名称/版本",
        "Cache-Control": "no-cache, no-store, must-revalidate",
        "Pragma": "no-cache"
    }
  })
    .done(function(res) {
      $( "#results" ).append( JSON.stringify(res, null, 2) );
    });

内容的提问来源于stack exchange,提问作者Rick R.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:24:04