空白错误,通过ajax将数据提交到发送电子邮件的php文件。

10 浏览
0 Comments

空白错误,通过ajax将数据提交到发送电子邮件的php文件。

我有一个ajax调用,向一个php文件发送一些数据(名字,姓氏,电子邮件),该文件将发送电子邮件给我。我已经确认发送的数据是存在的。然而当我运行时,我得到一个空白错误。我是否漏掉了什么简单的东西?有什么建议吗?

$.ajax({
    type: 'POST',
    url: 'signup.php',
    data: { first_name: 'first_name', last_name: 'last_name', email_address: 'email_address'},
    contentType: 'application/json; charset=utf-8',
    async: false,
    success: (function() {
        alert("成功");
    }),
    error: (function(data){
    })
});

在signup.php中,我有以下内容:


0
0 Comments

问题出现的原因:

1. 试图通过POST JSON数据,但不成功。

2. 试图读取已发布的表单数据,尽管尝试了POST JSON。

解决方法:

建议不要发JSON,而是发普通的URL编码的表单数据,这样$_POST将填充发送的值。

如果在数据字段中传递对象,它将被自动编码,因此您不必这样做'first_name='+encodeURIComponent(first_name)+'&last_name='+encodeURIComponent(last_name)+'&email_address'+encodeURIComponent(email_address)

此外,在您的PHP中,您尝试了一些字符串插值(将变量放入字符串中),但使用了单引号,您必须使用双引号。

以下是更新后的代码:

$.ajax({
    type: 'POST',
    url: '/signup.php',
    data: {'first_name': first_name, 'last_name': last_name, 'email_address': email_address},
    async: false,
    success: (function() {
        alert("Successful");
    }),
    error: (function(ts){
        alert(ts.responseText);
    })
});

您的更新对于硬编码的数据有效。但是当我尝试获取POST数据时遇到问题,当我在JavaScript中的ajax调用之前进行警告时,我的变量都有值...但是当我到达php时没有值。

您的更新代码如下:

$message = "New User\n$first_name\n$last_name\n$email_address";

邮件发送成功,但不会发送我的变量...即使我将变量发送到硬编码值

您忘记了去掉JSON内容类型,请现在尝试一下。

代码现在可以正常工作,但是我的$first_name显示为first_name...我的邮件是New Campaign first_name last_name email_address。

0