在 XMLHttpRequest() 之后 PHP 定义不起作用
Posted
技术标签:
【中文标题】在 XMLHttpRequest() 之后 PHP 定义不起作用【英文标题】:PHP define not working after XMLHttpRequest() 【发布时间】:2021-06-04 17:53:59 【问题描述】:我需要使用 php 常量变量保护文件,并且只能通过 index.php 访问文件。我需要通过 XMLHttpRequest 请求获取此页面,但是当我使用 javascript 的 XMLHttpRequest 在 index.php 的页面容器 DIV 中发送 page.php 的内容时,它不起作用并且总是重定向到主页。
我在同一个文件夹中有 4 个文件
1. index.php
2. page.php
3. get-page.js
4. protectedf.php
index.php 代码
<?php define("protectedf", TRUE); ?>
<div class="page-container"></div>
page.php 代码
<?php require_once("protectedf.php"); ob_start(); ?>
// some html inside page.php
get-page.js 代码
const pageContainer = document.querySelector('.page-container');
function mySettings()
const x = new XMLHttpRequest();
const url = 'page.php';
x.open('GET',url);
x.send();
x.addEventListener('readystatechange',function()
if (this.readyState == 4 && this.status == 200)
const xResult = this.responseText;
pageContainer.innerHTML = xResult;
this.abort();
);
protectedf.php 代码
<?php
if (!defined("protectedf"))
header("Location:http://localhost/homepage/");
exit();
?>
【问题讨论】:
【参考方案1】:只需在包含它的页面上添加define("protectedf", TRUE);
:page.php
【讨论】:
以上是关于在 XMLHttpRequest() 之后 PHP 定义不起作用的主要内容,如果未能解决你的问题,请参考以下文章
在 ajax 中调用 PHP 函数,不推荐使用同步 XMLHttpRequest
在 php 中,如何获取 XMLHttpRequest 的 send() 方法的文本/纯文本值
通过 XMLHttpRequest 从 JavaScript 向 PHP 发送数据
将当前页面的 php 变量传递给 XMLHttpRequest2(即 $user_id)