繁体   English   中英

通过Ajax向PHP发送数据?

[英]Sending data to PHP via Ajax?

我需要发送电子邮件,当我向mail.php发送请求时,数据值为空。 我无法弄清楚为什么会发生这种情况,并尝试了许多不同的方法。

AJAX:

$.ajax({
url: 'mail.php',
action: 'POST',
data: {
    'name_first': "First",
    'name_last': "Last",
    'title': "Test Title",
    'topic': "Test Topic",
    'mailer': "example@example.com",
    'mail': "This is a message"
},
success: function (response) {
        alert(response)
},
error: function(xhr, textStatus, error){
    console.log(xhr.statusText);
    console.log(textStatus);
    console.log(error);
}});

PHP:

<?php

require_once 'swiftmailer/lib/swift_required.php';

$inf_name = $_POST['name_first'] . ' ' . $_POST['name_last'];
$inf_title = $_POST['title'];
$inf_topic = $_POST['topic'];
$inf_mailer = $_POST['mailer'];
$inf_message = $_POST['mail'];

$transport = Swift_SmtpTransport::newInstance('ssl://smtp.gmail.com', 465)
    ->setUsername('business@astronstudios.com')
    ->setPassword('...');

$mailer = Swift_Mailer::newInstance($transport);

$message = Swift_Message::newInstance("[" . $inf_topic . "] " . $inf_title)
    ->setFrom(array($inf_mailer => $inf_name))
    ->setTo(array('business@astronstudios.com' => 'AstronStudios'))
    ->setBody($inf_message, 'text/html');

return $mailer->send($message);

设置type属性而不是action来设置AJAX请求的方法( GETPOST )。 所以代码看起来像这样,

$.ajax({
url: 'mail.php',
type: 'POST',
data: {
    'name_first': "First",
    'name_last': "Last",
    'title': "Test Title",
    'topic': "Test Topic",
    'mailer': "example@example.com",
    'mail': "This is a message"
},
success: function (response) {
        alert(response)
},
error: function(xhr, textStatus, error){
    console.log(xhr.statusText);
    console.log(textStatus);
    console.log(error);
}});

参考: http : //api.jquery.com/jquery.ajax/

var formdata = new FormData($('form')[0]);
$.ajax({
url: 'mail.php',
type: 'POST',
data: formdata ,
success: function (response) {
        if(data.response === 'success') {
 alert(response);
}else{
alert(response);
}
},
});

设置“类型”而不是“动作”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM