使用ajax调用特定文件

时间:2016-03-07 16:30:00

标签: javascript php ajax

我遇到了ajax的问题​​,所以这是来自My_Laravel_5 / public / js / init.js的原始调用

$('form#contactForm button.submit').click(function() {

  $('#image-loader').fadeIn();

  var contactName = $('#contactForm #contactName').val();
  var contactEmail = $('#contactForm #contactEmail').val();
  var contactSubject = $('#contactForm #contactSubject').val();
  var contactMessage = $('#contactForm #contactMessage').val();

  var data = 'contactName=' + contactName + '&contactEmail=' + contactEmail +
           '&contactSubject=' + contactSubject + '&contactMessage=' + contactMessage;

  $.ajax({

      type: "POST",
      url: "inc/sendEmail.php",
      data: data,
      success: function(msg) {

        // Message was sent
        if (msg == 'OK') {
           $('#image-loader').fadeOut();
           $('#message-warning').hide();
           $('#contactForm').fadeOut();
           $('#message-success').fadeIn();   
        }
        // There was an error
        else {
           $('#image-loader').fadeOut();
           $('#message-warning').html(msg);
            $('#message-warning').fadeIn();
        }

      }

  });

但是我需要调用位于My_Laravel_5 / app / Http / Controllers / sendEmail.php中的另一个文件 我试过这个:

  • URL: “../../应用程序/ HTTP /控制器/ sendEmail.php”
  • URL: “../应用程序/ HTTP /控制器/ sendEmail.php”
  • URL: “/应用/ HTTP /控制器/ sendEmail.php”

但这不起作用请帮助。

1 个答案:

答案 0 :(得分:1)

在Laravel中,您有一个app/Http/routes.php文件,您可以在其中定义url,请求方法(get post delete ...)和控制器方法之间的绑定。

您应该添加到此文件:

Route::post('/yourAjaxUrl', 'ControllerNamespace\ControllerClassName@method');

其中ControllerNamespacesendEmail.php的命名空间,而ControllerClassName是您在此文件中写入的类的名称。

然后,在init.js中,将ajax调用对象的url参数更改为/yourAjaxUrl

希望这会对你有所帮助。