Php jquery ajax在使用$.post时仍在url栏中发送url
我正在尝试使用ajax通过php发送消息。但我仍然在url栏中收到GET请求,而不是POST。url始终显示在地址栏中 这是我的表单、jquery和php代码 html格式:Php jquery ajax在使用$.post时仍在url栏中发送url,php,jquery,ajax,Php,Jquery,Ajax,我正在尝试使用ajax通过php发送消息。但我仍然在url栏中收到GET请求,而不是POST。url始终显示在地址栏中 这是我的表单、jquery和php代码 html格式: <form class="form-horizontal contactez"> <!-- Form Name --> <legend>Laissez-nous un mess
<form class="form-horizontal contactez">
<!-- Form Name -->
<legend>Laissez-nous un message</legend>
<!-- Text input-->
<div class="form-group">
<label class="col-md-4 control-label" for="nom_m"></label>
<div class="col-md-4">
<input id="nom_m" name="nom_m" type="text" placeholder="Nom" class="form-control input-md" class="nom_m">
</div>
</div>
<!-- Text input-->
<div class="form-group">
<label class="col-md-4 control-label" for="email_m"></label>
<div class="col-md-4">
<input id="email_m" name="email_m" type="text" placeholder="Email" class="form-control input-md" class="email_m">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label" for="objet"></label>
<div class="col-md-4">
<input id="objet" name="objet" type="text" placeholder="Sujet" class="form-control input-md" class="objet">
</div>
</div>
<!-- Textarea -->
<div class="form-group">
<label class="col-md-4 control-label" for="message"></label>
<div class="col-md-4">
<textarea class="form-control" id="message" name="message" class="message">Message</textarea>
</div>
</div>
<div class="modal-footer d-flex justify-content-center">
<button class="btn btn-indigo submitBtn" type="submit"> Message <i class="fa fa-paper-plane-o ml-1"></i></button>
</div>
</form>
php代码:
<?php
require "install.php" ;
$nom = htmlspecialchars($_POST['nom']) ;
$email = htmlspecialchars($_POST['email']) ;
$objet = htmlspecialchars($_POST['objet']);
$message = htmlspecialchars($_POST['message']);
if(isset($connection) && !empty($nom) && !empty($email) && !empty($message)){
$to = "name@gmail.com";
//$subject = $objet ;
$headers = "From : ". $email ."\r\n";
$headers .= 'Content-Type: text/HTML; charset=utf-8' . "\r\n";
$headers .= 'Content-Transfer-Encoding: 8bit'. "\n\r\n";
mail($to,$objet,$message,$headers);
}
?>
我使用$.post,但当我使用浏览器检查代码时,我看到请求方法:GET。并且php文件未加载
帮助我。要添加为注释的低代表 请查看您的.htaccess文件。(不要设置php工具来检查它,并指出您当前要查看的位置)。 我记得可能发生的几个问题是,.htaccess文件会覆盖您的url并删除.php扩展名-因此您可以尝试搜索文件并更改它,或者尝试将url更改为
$.post(“提交消息”…
另一种情况是,url中会出现斜杠/
,从而导致问题。
基本上,问题在于某些设置会导致请求被重定向,从而使其无法获取。Low rep添加为注释 查看一下您的.htaccess文件(目前没有设置php工具来检查它并指出您要查看的位置)。 我记得可能发生的几个问题是,.htaccess文件会覆盖您的url并删除.php扩展名-因此您可以尝试搜索文件并更改它,或者尝试将url更改为
$.post(“提交消息”…
另一种情况是,url中会出现斜杠/
,从而导致问题。
基本上,问题在于某些设置会导致请求被重定向,从而使其无法获取。以下是我调试该请求的步骤: 首先,明确阻止表单提交的默认事件处理程序。这样做是为了在函数命中
return false;
之前捕获出现的任何错误
$('.contactez').submit(function(e){
e.preventDefault();
// ...
}
现在,当您运行代码时,您将得到以下错误
您的脚本在有机会返回false
并阻止表单提交之前崩溃,因此,当通过重定向提交表单时,浏览器将使用默认行为(这是您在说地址栏正在更改时看到的)
您可能只需要将.val()
添加到此行var objet\u m=$('#objet')
我在页面上发现另一个错误,与未定义的bootbox
有关,但我怀疑这只是您在这里没有讨论的一个依赖关系。希望e.preventDefault()
步骤为您提供足够的工具继续调试
祝你好运!以下是我调试此程序的步骤: 首先,明确阻止表单提交的默认事件处理程序。这样做是为了在函数命中
return false;
之前捕获出现的任何错误
$('.contactez').submit(function(e){
e.preventDefault();
// ...
}
现在,当您运行代码时,您将得到以下错误
您的脚本在有机会返回false
并阻止表单提交之前崩溃,因此,当通过重定向提交表单时,浏览器将使用默认行为(这是您在说地址栏正在更改时看到的)
您可能只需要将.val()
添加到此行var objet\u m=$('#objet')
我在页面上发现另一个错误,与未定义的bootbox
有关,但我怀疑这只是您在这里没有讨论的一个依赖关系。希望e.preventDefault()
步骤为您提供足够的工具继续调试
祝你好运!你的处理程序没有返回
false
,因为你的一个作业中有一个错误:
var objet_m = $('#objet');
如果(objet_m.trim()='')导致以下错误,则行else:
TypeError: objet_m.trim is not a function
如果要确保表单未提交,请使用preventDefault()
,这也使您能够从函数中删除所有那些returnfalse
$('.contactez').submit(function(evt) {
evt.preventDefault();
var nom_m = $('#nom_m').val();
var email_m = $('#email_m').val();
var message_m = $('#message').val();
var objet_m = $('#objet').val();
var reg = /^[A-Z0-9._%+-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i;
// Rest of the function ommited
});
您的处理程序没有返回false
,因为您的一个分配中有一个错误:
var objet_m = $('#objet');
如果(objet_m.trim()='')导致以下错误,则行else:
TypeError: objet_m.trim is not a function
如果要确保表单未提交,请使用preventDefault()
,这也使您能够从函数中删除所有那些returnfalse
$('.contactez').submit(function(evt) {
evt.preventDefault();
var nom_m = $('#nom_m').val();
var email_m = $('#email_m').val();
var message_m = $('#message').val();
var objet_m = $('#objet').val();
var reg = /^[A-Z0-9._%+-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i;
// Rest of the function ommited
});
你能在
中回答这个问题吗?我怀疑错误在于你写的JS没有连接到你认为它的表单is@HPierce完成了。我不知道问题出在哪里。你能在
中回答这个问题吗?我怀疑错误在于你写的JS没有连接到你认为它的表单is@HPierce是的完成了。我不知道问题出在哪里。谢谢它起作用了。是.val()我忘了。汉克斯它起作用了。是.val()我忘了