Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jquery ajax在使用$.post时仍在url栏中发送url_Php_Jquery_Ajax - Fatal编程技术网

Php jquery ajax在使用$.post时仍在url栏中发送url

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

我正在尝试使用ajax通过php发送消息。但我仍然在url栏中收到GET请求,而不是POST。url始终显示在地址栏中

这是我的表单、jquery和php代码

html格式:

                <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()我忘了