lev*_*aya 52 javascript php ajax jquery json
我花了6个多小时在我的代码中找到异常或特殊字符,但我不能.我在这里检查了每个类似的消息.
我正在发送带有巨大弹出窗口的表单.首先,我使用内联弹出窗口打开表单,而不是将所有输入发送到main.js进行验证.
所以,我只需要第三只眼睛.
我有:index.html,register.php,main.js
这是代码
这里是错误消息
JSON输出

Chrome控制台:

Firefox控制台:

我错过了什么?
Hoc*_*eyJ 29
为了寻求解决类似问题的搜索者的利益,如果您的输入是空字符串,则可能会收到类似的错误.
例如
var d = "";
var json = JSON.parse(d);
Run Code Online (Sandbox Code Playgroud)
或者如果您使用的是AngularJS
var d = "";
var json = angular.fromJson(d);
Run Code Online (Sandbox Code Playgroud)
在chrome中,它导致'Uncaught SyntaxError:意外的输入结束',但Firebug将其显示为'JSON.parse:JSON数据的第1行第1列意外的数据结束'.
当然大多数人都不会被这个抓住,但是我没有保护这个方法,导致了这个错误.
Jam*_*lor 20
字符是<让我觉得你有PHP错误,你尝试回应所有错误的事实.
由于我没有你的数据库,我正在通过你的代码试图找到错误,到目前为止,我已经更新了你的JS文件
$("#register-form").submit(function (event) {
var entrance = $(this).find('input[name="IsValid"]').val();
var password = $(this).find('input[name="objPassword"]').val();
var namesurname = $(this).find('input[name="objNameSurname"]').val();
var email = $(this).find('input[name="objEmail"]').val();
var gsm = $(this).find('input[name="objGsm"]').val();
var adres = $(this).find('input[name="objAddress"]').val();
var termsOk = $(this).find('input[name="objAcceptTerms"]').val();
var formURL = $(this).attr("action");
if (request) {
request.abort(); // cancel if any process on pending
}
var postData = {
"objAskGrant": entrance,
"objPass": password,
"objNameSurname": namesurname,
"objEmail": email,
"objGsm": parseInt(gsm),
"objAdres": adres,
"objTerms": termsOk
};
$.post(formURL,postData,function(data,status){
console.log("Data: " + data + "\nStatus: " + status);
});
event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
PHP编辑:
if (isset($_POST)) {
$fValid = clear($_POST['objAskGrant']);
$fTerms = clear($_POST['objTerms']);
if ($fValid) {
$fPass = clear($_POST['objPass']);
$fNameSurname = clear($_POST['objNameSurname']);
$fMail = clear($_POST['objEmail']);
$fGsm = clear(int($_POST['objGsm']));
$fAddress = clear($_POST['objAdres']);
$UserIpAddress = "hidden";
$UserCityLocation = "hidden";
$UserCountry = "hidden";
$DateTime = new DateTime();
$result = $date->format('d-m-Y-H:i:s');
$krr = explode('-', $result);
$resultDateTime = implode("", $krr);
$data = array('error' => 'Yükleme S?ras?nda Hata Olu?tu');
$kayit = "INSERT INTO tbl_Records(UserNameSurname, UserMail, UserGsm, UserAddress, DateAdded, UserIp, UserCityLocation, UserCountry, IsChecked, GivenPasscode) VALUES ('$fNameSurname', '$fMail', '$fGsm', '$fAddress', '$resultDateTime', '$UserIpAddress', '$UserCityLocation', '$UserCountry', '$fTerms', '$fPass')";
$retval = mysql_query( $kayit, $conn ); // Update with you connection details
if ($retval) {
$data = array('success' => 'Register Completed', 'postData' => $_POST);
}
} // valid ends
}echo json_encode($data);
Run Code Online (Sandbox Code Playgroud)
小智 14
去掉
dataType: 'json'
Run Code Online (Sandbox Code Playgroud)
替换它
dataType: 'text'
Run Code Online (Sandbox Code Playgroud)
小智 7
我有完全相同的问题,我找到了一些东西.我评论了这一行:
dataType:'json',
之后它成功但是...当我做console.log(数据)时它返回了主index.html.
这就是为什么你有"意外的令牌<"错误,它无法解析.
| 归档时间: |
|
| 查看次数: |
301781 次 |
| 最近记录: |