0

我有一个非常简单的注册表。表单与 jQuery/Ajax 一起发送到 PHP 页面进行处理。我在整个应用程序中到处都使用这个相同的代码,但出于某种原因,在这一页上,它只是不起作用,我试图找出问题所在。这个页面没有什么特别的,它在同一个域上,所以我在这里不知所措......

提交表单时,以下 jQuery 函数处理表单:

var dataString = $(event.target).serialize();
var url = '/post/register.php';

console.log( dataString ); // OUTPUTS firstname=Andrew&email=me@email.com

$.ajax({
        type: "POST",
    url: url,
    data: dataString,
    dataType: "text",
    error: function(jqXHR,textStatus,errorThrown) {
        // ERROR
    },
    success: handleRegistration
});

控制台显示表单中的数据已正确序列化。

在 PHP 页面 (register.php) 上,我只有以下代码:

$newArr[]= array('email'=>$_POST['email'], 'firstname'=>$_POST['firstname']);

ob_start();
print_r($newArr);   
$c=ob_get_contents();
ob_end_clean();             
$fp=fopen('test.txt', "wb");
fwrite($fp, $c);
fclose($fp);    

这只是将 POST 变量写入名为“test.txt”的 TXT 文件。文本文件显示变量为空:

Array
(
    [0] => Array
        (
            [firstname] => 
            [email] => 
        )

)

我一生都无法弄清楚为什么它没有收到 POST vars。

任何人?

* 回答 * 我出于演示目的更改了上面的网址,但在我的应用程序中,网址是:

var url = '/post/register';

并且注册文件夹中有一个“index.php”文件。

表单被发送到 PHP 页面,但是因为我错过了尾随的“/”,查询字符串没有正确发送。所以我的问题的答案是简单地将网址更改为:

var url = '/post/register/';

对我来说这是一个多么愚蠢的错误 - 花了太长时间才弄清楚:S

4

0 回答 0