早上好,人们。我是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)
}
});
有人可以帮我吗?
答案 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);
}
根据您对步骤的了解,这可能超出您的需要,也可能更少。随时跟进更多信息。
祝你好运。