【发布时间】:2017-03-29 10:01:36
【问题描述】:
这是在谷歌浏览器上发现的错误消息:
POST http://localhost/display/register/registerUser 500(内部服务器错误)
我的项目文件名为“display”。
一个名为“register”的控制器文件,它有一个名为“registerUser”的函数。它所做的只是获取用户的输入,并将其与数据库进行比较以查看名称是否被使用,如果有效将其存储到数据库中并给他们一个成功消息,如果无效则给出一个错误消息。
$username=$this->input->post('name');
$password=$this->input->post('password');
$result=$this->user->checkExistUser($username);
if(!$result){
$data=array(
'username'=>$username,
'password'=>md5($password)
);
$this->user->register($data);
echo "<script>alert('You have success registered');</script>";
$this->load->view('home_view');
}
else{
echo "<script>alert('Sorry, this email address has been used!');</script>";
$this->load->view('registerView');
}
这是我的名为 registerView 的视图文件
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Welcome to Stock game</title>
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js">
</script>
</head>
<body>
<div id="container">
<h1>Welcome to Stock game!</h1>
<div id="body">
<p>This is the register page</p>
</div>
<div>
<form name="userform" id="userform" >
<input type="text" name="name" placeholder="Name"/>
<input type="text" name="password" placeholder="Password"/>
<button name="submit" value="submit">Register</button>
</form>
</div>
<script type="text/javascript">
$(document).ready(function(){
$('form#userform').on('submit',function(e){
e.preventDefault();
var name=$("#name").val();
var password=$("#password").val();
$.ajax({
type:'POST',
url:'register/registerUser',
data:
{'name':JSON.stringify(name),'password':JSON.stringify(password)},
dataType:'JSON',
success: function(response){
if(response=="success"){
alert("Yes login");
}
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(xhr.responseText);
alert(thrownError);
}
});
});
});
</script>
</div>
<br/>
</body>
</html>
我已经用简单的表单 post(form action=xxx, method=post) 测试了控制器和模型类,并且没有错误。 我搜索了几乎所有关于此的stackoverflow问题,但我仍然无法解决它,我希望有人可以帮助我。
【问题讨论】:
-
你为什么
JSON.stringify你的意见? -
@hassan 我看到一些帖子这样做是为了解决这个问题,所以我只是尝试使用 JSON.stringify,但是它不起作用
-
当您将数据属性设置为
{'name':name,'password':password}时,您遇到了同样的错误? -
@hassan 是的,同样的错误
-
发布您的回复,这会导致控制台出现 500 内部错误。
标签: php ajax codeigniter