javascript - 在 URL 中传递 Javascript 变量

我正在尝试通过 URL 将 javascript 变量传递给 php 页面。下面的代码触发了 php 页面,但它没有获取变量。我已经使用 window.location.href 编写了代码并且工作正常,问题是这样做会加载 tracker.php 页面。

下面是我的代码。

<script type="text/javascript">
var siteId = "VT0013";
</script>
<script type="text/javascript" src="http://www.domainame.com/tracker.php?siteId="+ siteId ;> 
</script>

PHP 页面

$siteId = $_GET["siteId"];

获得 siteId 后,我将结果作为测试通过电子邮件发送,但我没有获得 siteId 的值。当将相同的代码与 window.location.href 一起使用时,一切正常。

最佳答案

我猜因为这叫做 tracker.php,所以您实际上只需要点击这个 URL 就可以了?如果是这种情况,请考虑使用 Beacon API .

navigator.sendBeacon('https://example.com/tracker.php' {
  siteId: 'VT0013'
});

这会产生一个 HTTP POST 请求,但无论如何这通常更好。您不必担心缓存。此外,即使请求尚未完成并且页面正在卸载,Beacon API 仍会工作。

如果您真的想动态加载 JavaScript,当前的方法是使用 import() .

const siteId = 'VT0013';
await import (`https://example.com/tracker.php?siteId${encodeURIComponent(siteId)}`);

最后,如果您需要动态加载此 JavaScript 并且该脚本需要在页面其余部分(即不是模块)的上下文中运行,那么最好的办法是注入(inject)一个新的脚本标签:https://stackoverflow.com/a/8578840/362536

无论您做什么,请确保转义 URL 和 HTML 中使用的数据。

https://stackoverflow.com/questions/65403710/

相关文章:

javascript - Directus JS SDK 向 API 链接添加了一个额外的斜杠

php - 如何在 Laravel 中使用 Angular

node.js - 使用 React Hook Form 不可编辑字段

javascript - jQuery 在发布数据后将选择添加到选项

git - 将 VSCode 设置为我的 Mac M1 的默认 Git 编辑器

python - 如何在 Python 中生成独立的解析器?

python-3.7 - 操作系统错误 : no library called "cairo" er

reactjs - 为什么我的自定义路由没有将正确的路径传递给子组件?

flutter - 应用程序构建后,google_fonts 无法正常工作

ios - 在真实设备上运行应用程序时 Xcode : No code signature foun