【发布时间】:2020-09-09 08:07:20
【问题描述】:
这是我的 .htaccess 文件。可以看出,一切都是通过 index.php 重定向的。
<IfModule mod_rewrite.c>
Options -Multiviews
RewriteEngine On
RewriteBase /project_name/public
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
</IfModule>
现在这是一个文件 (viewname.php),位于我的一个视图文件夹中(这是一个 MVC 样式的项目)。可以看出,我正在向与 index.php 位于同一文件夹中的文件 ajax.php 发出 AJAX POST 请求(即,文件夹 public)。请注意,我没有将 url 写为“../something”,因为我正在通过 index.php 重定向所有内容。我通过在此文件中写入<?php echo __FILE__;?> 确认了这一点,该文件返回了结果 index.php。如果 AJAX 请求成功,我应该在 id 为“r”的 div 中将输出作为“工作”。但这不会发生。此外,我在控制台中没有收到类似 jquery.min.js:4 POST http://127.0.0.1/project_name/public/file_name.php 404 (Not Found) 的任何错误,我曾经在没有该 .htaccess 文件的项目中遇到这种错误。当我console.log(data) 时,我在控制台中看到 index.php 文件中的 HTML 代码,在本例中是 Bootstrap 和 JQuery 的 CDN。我应该对我的 AJAX 代码或 .htaccess 文件进行哪些更改?
<div id="r"></div>
//JQuery AJAX
$(document).ready(function(){
$.ajax({
url: "ajax.php",
method: "POST",
data: {
valid: "yes"
},
success: function(data){
$("div#r").html(data);
}
});
});
这是 ajax.php 文件中的代码:
<?php
if(isset($_POST['valid'])){
if($_POST['valid']=='yes'){
echo 'Working';
}
}
【问题讨论】:
-
当您发出 AJAX 请求时,您实际上 在 上的 URL 是什么? (这听起来像是典型的新手问题,即不知道相对 URL 是如何工作的,tbh。)
-
其实我以前用的url:“ajax.php”,后来改成了“127.0.0.1/project_name/ajax.php”,现在一切正常。顺便问一下@CBroe,你有什么链接可以解决我的 URL 问题吗?有很多吗??