我在使用 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 中的另一个文件 我试过这个:
- 网址:“../../app/Http/Controllers/sendEmail.php”
- 网址:“../app/Http/Controllers/sendEmail.php”
- 网址:“/app/Http/Controllers/sendEmail.php”
但这不起作用,请帮忙。
最佳答案
在 Laravel 中,您有一个 app/Http/routes.php
文件,您可以在其中定义 url、请求方法(获取、删除...)和 Controller 之间的绑定(bind)方法。
您应该添加到此文件:
Route::post('/yourAjaxUrl', 'ControllerNamespace\ControllerClassName@method');
其中 ControllerNamespace
是 sendEmail.php
的命名空间,ControllerClassName
是您在此文件中编写的类的名称。
然后,在 init.js
中,将 ajax 调用对象的 url 参数更改为 /yourAjaxUrl
希望这对您有帮助。
关于javascript - 使用ajax调用特定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35848944/