AJAX POST 请求无法与 .htaccess 重定向规则一起正常工作

这是我的 .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 位于同一文件夹(即文件夹 public)中的文件 ajax.php 发出 AJAX POST 请求。请注意,我没有将 url 写为“../something”,因为我正在通过 index.php 重定向所有内容。我通过<?php echo __FILE__;?>在该文件中写入 , 来确认返回了结果 index.php。如果 AJAX 请求成功,我应该在 ID 为“r”的 div 中获得“Working”输出。但那不会发生。我也没有在控制台中收到任何类似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';

 }

}


倚天杖
浏览 135回答 3
3回答

尚方宝剑之说

在这种情况下,AJAX 可以完全工作,但唯一的区别是 ajax 不能对您的网页产生影响,如回显、调用函数等。

哔哔one

我将 url 从“ajax.php”更改为“&nbsp;http://127.0.0.1/project_name/ajax.php&nbsp;”,现在一切正常。

千巷猫影

您在 ()(圆括号)之后缺少函数$(document).ready(function(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$.ajax({&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; url: "test1.php",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; method: "POST",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; data: {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;valid: "yes"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; success: function(data){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $("div#r").html(data);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;});&nbsp; &nbsp; });
打开App,查看更多内容
随时随地看视频慕课网APP