这是我的角度代码.表单提交代码.单击“提交”按钮时. JSON解析错误:无法识别的令牌’<'这个错误会显示出来.空记录将保存在DB上.我也为此添加了HTML代码和PHP服务器端代码.
$scope.submitForm = function() {
$http({
method : 'POST',
url : 'http://localhost/youtubewebservice/checkOutt.PHP',
data : $scope.user,
dataType: 'json',
headers : {'Content-Type': 'application/x-www-form-urlencoded'}
})
.success(function(data) {
if (data.errors) {
$scope.errorinputFName = data.errors.inputFName;
$scope.errorinputLName = data.errors.inputLName;
}
});
};
<form name="userForm" ng-submit="submitForm()">
<div class="form-group">
<label>Name</label>
<input type="text" name="inputFName" class="form-control" ng-model="user.inputFName">
<span ng-show="errorName">{{errorName}}</span>
</div>
<div class="form-group">
<label>Email</label>
<input type="text" name="inputLName" class="form-control" ng-model="user.inputLName">
<span ng-show="errorEmail">{{errorEmail}}</span>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
<div id="sendmessageresponse"></div>
</form>
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json;charset=UTF-8");
$data = json_decode(file_get_contents("PHP://input"));
$inputFName = MysqL_real_escape_string($data->inputFName);
$inputLName = MysqL_real_escape_string($data->inputLName);
$con = MysqL_connect('localhost', 'root', '');
MysqL_select_db('look4com_lk', $con);
$qry_em = 'select count(*) as cnt from checkout where chkID ="' . $chkID . '"';
$qry_res = MysqL_query($qry_em);
$res = MysqL_fetch_assoc($qry_res);
if ($res['cnt'] == 0) {
$qry = 'INSERT INTO checkout (inputFName,inputLName) values ("' . $inputFName . '","' . $inputLName . '")';
$qry_res = MysqL_query($qry);
if ($qry_res) {
$arr = array('msg' => "User Created Successfully!!!", 'error' => '');
$jsn = json_encode($arr);
print_r($jsn);
} else {
$arr = array('msg' => "", 'error' => 'Error In inserting record');
$jsn = json_encode($arr);
print_r($jsn);
}
} else {
$arr = array('msg' => "", 'error' => 'User Already exists with same email');
$jsn = json_encode($arr);
print_r($jsn);
}
解决方法:
此特定解析错误表示输出无效JSON(duh).由于您的输出是使用json_encode格式化的,因此它应该是. (虽然我通常只使用print_r作为数组……)但是……
我的经验告诉我你的服务器产生错误/通知,PHP通常输出一些html,因此<.既然您声称响应是干净的JSON,我建议您查看服务器发送的实际响应.我的假设是,你从命令行测试了你的PHP脚本(因此PHP://输入?)但服务器可能处理的请求与你期望的不同. 您可以在几乎所有体面的浏览器的网络选项卡中检查服务器的响应,通常是F12 – >网络选项卡,然后重新加载和/或重新发送表单.如果您在解决您的PHP问题时遇到问题,请将PHP错误消息添加到您的问题中或者询问一个新问题.
最后一点:请避免使用MysqL_ *函数(不推荐使用的MysqL库),并使用MysqLi_ *函数(MysqLi库)或PDO.也使用准备好的陈述.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。