如何使用PHP在$ .post ajax中传递数据

时间:2019-04-25 21:17:11

标签: php ajax laravel laravel-5 request

早上好,人们。我是PHP新手,需要API实现方面的帮助。

我需要传递ajax.post客户端数据,电子邮件和密码。当我直接进入PHP时,它可以完美运行。但是当我通过数据发送时,它从服务器返回了500。

一个例子:

public function createUser(){
    $this->post("api/license-manager/users", [
        "email" => "xxxxxxxx@hotmail.com",
        "name" => "xxxx 232r4 xx"
    ]);
    return $this->result();
}

我希望它可以这样工作:

var data = {
    'email': "xxxxx@test.com",
    'name': "Xxxxxx 001323"
}
$.ajax({
    type: "POST",
    url: '/midleware/createuser/',
    data: JSON.stringify(data),
    success: function(data){
        console.log(data)
    }
});

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

对不起,我无法发表评论,但是您需要50个REP。因此,尽管问题似乎模棱两可,但这里还是有一个答案,因此我在这里进行假设。随时添加更多数据,我可以帮助您。

尝试查看正在发生的事情时,我假设createUser()无法弄清楚您要完成的工作,似乎您正在混用JS和php。当您在laravel中与数据库进行交互时,您将处于一个动作的开始,该动作开始于某种ajax请求,并且是从javascript前端中的某个内容发送的。我假设您的示例对此进行了正确的设置。


var data = {
    'email': "xxxxx@test.com",
    'name': "Xxxxxx 001323"
}
$.ajax({
    type: "POST",
    url: '/midleware/createuser/',
    data: JSON.stringify(data),
    success: function(data){
        console.log(data)
    }
});

现在,您可能需要对标头进行某些操作,请记住,如果/ midleware / createuser /路由位于routes / web.php文件上,则需要以某种方式发送CSRF令牌,否则您需要发送如果您的路线位于routes / api.php部分中,则为某种令牌。

例如,一旦您正确地路由并且将其推迟到控制器方法中,就可以在控制器中处理它,或者将其推迟到一个FormRequest对象上,该对象比一般请求具有一些优势。

您可以通过在“ UserLicenceController”中使用此功能,使控制器从IOC容器中解决您的请求。您可以在终端上使用artisan命令进行请求

php artisan make:request CreateLicenseRequestForm

然后您可以在您的create函数中调用它,我使用此约定


public function create(CreateLicenseRequestForm $form)
{
    return $form->persist()
}

然后在您的表单中,设置“ $ rules”数组以验证所需的内容。就像用户只存在一次,并且已经付费或其他方式一样。您的授权功能可确保您具有实际发出请求的授权,例如,某人正在玩弄路线并试图授予自己访问另一个帐户的权限。

然后在所有方法都经过验证并满意后,使用您的persist方法,返回您的响应。如果是JS请求,则可能需要JSON

类似


public function persist()
{
    //DO YOUR DB WORK HERE

    return response($message, $statusCode);
}

根据您对步骤的了解,这可能超出您的需要,也可能更少。随时跟进更多信息。

祝你好运。