在外部服务器上运行PHP脚本并通过反馈(通过AJAX)仅返回错误405

时间:2015-09-15 22:14:06

标签: javascript php jquery html ajax

我的问题是:我有一个用于发送电子邮件的HTML表单。我有一个PHP文件来处理所述表格并发送电子邮件。问题是,它们不在同一台服务器上(我可以访问PHP文件)。我的页面上有Bootstrap和JQuery。

我的表单如下所示:(简化)

<div id='form-messages'></div>
<form id='ajax-contact'>
several text fields, each one with name and id
<button type="submit" id="submit">SUBMIT</button>
</form>

这是一个简单的形式,它的工作原理。问题是我如何将数据发送到PHP脚本。这些脚本标记位于<body>标记的末尾:

<script>
$(document).ready(function() {  

$('#ajax-contact').on('click', function () {
              // Get the form.
              var form = $("#ajax-contact");

              // Get the messages div.
              var formMessages = $("#form-messages");

              // Set up an event listener for the contact form.
              $(form).submit(function(event) {
                // Stop the browser from submitting the form.
                event.preventDefault();

                // Serialize the form data
              var formData = $(form).serialize();
                });

              $.getJSON("my_path_to_the_php_script.php", function(formData){

              });
});
});

</script>

我被告知使用getJSON解决PHP脚本与HTML不在同一服务器上的问题。 AFAIK .getJSON将JSONP字符串发送到PHP文件。我想要检查的只是PHP脚本是否失败,并在表单上方显示错误消息。

我尝试使用.getJSON的原因是因为我已经尝试过这个:

 $.ajax({
                url:'my_path_to_the_php_script.php',
                type:'post',
                data: formData,
                jsonp: 'jsonp',
                dataType: 'jsonp', // use JSONP
                success: function(data){
                      // Display OK message
                      $(formMessages).html(<div class="alert alert-success">
                        <a href="#" class="close" data-dismiss="alert" aria-label="close">X</a>
                        Success!
                      </div>)

                      // Clear the form.
                      $(formMessages).each(function(){
                      this.reset();
                      });
                    }
                },
                error: function (error) {
                $(formMessages).html(<div class="alert alert-danger">
                  <a href="#" class="close" data-dismiss="alert" aria-label="close">X</a>
                  Warning Message!
                </div>)
                }

    });

这两种方法都不起作用。我想要做的就是检查脚本是否失败。 $ .getJSON()方式不起作用,它保持在同一页面上(如我所料),但服务器返回错误405页面(不允许方法)。我无法访问该服务器的PHP安装的头文件。 $ .ajax(dataType:&#39; jsonp&#39;)方式不起作用,返回错误405.

感谢阅读,请帮助。

0 个答案:

没有答案