gpt4 book ai didi

php - 由于 PHP 中缺少 DEFINE 变量,AJAX 查询失败

转载 作者:行者123 更新时间:2023-12-01 04:26:04 24 4
gpt4 key购买 nike

我是 AJAX/jQuery 与 PHP 的新手。

我正在尝试使用 XMLHttpRequest 或 jQuery 通过 AJAX 调用 PHP 脚本。在这两种情况下,调用都会失败,因为我调用的 php 文件在第一行包含以下检查

if (!defined("SOMETHING")) { die("Error. You cannot access this file directly");}

这导致我的调用失败,因为在这种情况下,当我从外部调用时没有定义此变量。这个条件只是检查调用者是否是同一个Web应用程序,或者调用是否来自外部(然后它将被拒绝)。

是否有解决方法,无需删除此检查?我可以使用 AJAX/jQuery 设置这个预期变量吗?

有没有办法通过 AJAX 调用特定的 PHP 方法而不调用整个 PHP 文件?

提前致谢托马斯

最佳答案

嗯......你可以做到这一点,但我不确定这是否安全或你希望的方式。

您的 jQuery 应该使用 GETPOST 发布一个变量,您应该在 PHP 端检查该变量。如果您已收到该变量,请定义SOMETHING

这是您的 jQuery,使用 POST 方法:

$.post('ajax.php', {SOMETHING: true}, function(ret){
// do whatever you like with the return here
});

这是您的 PHP,如果它收到包含变量 SOMETHING$_POST 请求,它将定义 SOMETHING

<?php
if(isset($_POST['SOMETHING'])){
define('SOMETHING', true);
}
if (!defined("SOMETHING")) { die("Error. You cannot access this file directly");}

// do anything you like here
?>

关于php - 由于 PHP 中缺少 DEFINE 变量,AJAX 查询失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6404269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com