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

调用PHP中ajax函数时如何获取当前页面URL而非ajax接口URL

AJAX请求PHP端获取原访问页面URL的实现方法

有两种常用的可落地方案,具体实现如下:

方案1:前端主动传递原页面URL(最可靠)

前端发起AJAX请求时,直接读取当前页面的完整URL作为参数传给后端接口,示例代码如下:

// 原生JS示例
const xhr = new XMLHttpRequest()
// 读取当前页面URL
const currentPageUrl = window.location.href
const interfaceUrl = 'http://localhost.com/productpage/get_product_det/654645fgdfdg?origin_url=' + encodeURIComponent(currentPageUrl)
xhr.open('GET', interfaceUrl)
xhr.send()

PHP接口端直接获取对应参数即可:

// 对参数做解码处理
$originPageUrl = urldecode($_GET['origin_url']);

方案2:读取请求头Referer字段(无需前端改代码)

浏览器默认会在AJAX请求头中携带Referer字段,值为发起请求的原页面地址,PHP可以直接读取系统超全局变量获取:

$originPageUrl = $_SERVER['HTTP_REFERER'] ?? '';

该方案有以下局限性:

  • 部分用户会通过浏览器配置禁用Referer上报,或者代理服务器会修改/清空该字段,存在获取不到值的概率
  • 站点如果存在HTTPS跳HTTP的场景,浏览器会自动清空Referer字段,该场景无法使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:36:05