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

jQuery第一个$.get无响应无日志第二个请求正常如何排查

问题原因与解决方案

你遇到的是$.get请求有服务器返回但success回调不执行的问题,核心原因是jQuery的$.get方法仅在HTTP状态码为2xx、响应内容符合预期格式、无跨域等浏览器层面拦截的情况下,才会触发success回调,你未配置错误捕获逻辑,所以无法感知到请求过程中发生的异常。

第一步:添加错误捕获逻辑定位问题

给第一个$.get添加fail回调,打印具体错误信息:

$.get("https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=10.817841669295166&lon=106.64377723626976", function(data1) {                   
  console.log("has address info");
  // 如果需要用第一个接口返回的地址,在这里给address赋值
  address = data1.display_name;
  // 把第二个请求放到这里,保证拿到address之后再执行后续逻辑
}).fail(function(jqXHR, textStatus, errorThrown) {
  // 这里会打印具体的错误原因
  console.error("第一个接口请求异常:", textStatus, errorThrown, jqXHR);
})

常见异常原因与修复方案

  • 跨域(CORS)限制:这是最可能的原因。Postman不会校验浏览器的跨域策略,所以请求正常返回,但浏览器会自动拦截未配置跨域许可的第三方接口响应,导致jQuery判定请求失败,不会进入success回调。如果控制台打印的错误是CORS相关,你可以通过后端代理转发该请求,避免前端直接调用跨域接口。
  • 响应格式解析失败:可以给$.get第三个参数传入'json',显式指定响应格式为JSON,避免jQuery自动识别出错:
$.get("请求地址", 回调函数, 'json')
  • 异步执行顺序问题:你当前代码中两个$.get是并发执行的,如果你需要把第一个接口返回的地址传给后续的/Home/CheckIN接口,必须把第二个请求的逻辑放到第一个请求的回调内部,否则后续请求拿到的address永远是空值。

内容的提问来源于stack exchange,提问作者Duy Khương

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:36:04