【发布时间】:2017-12-16 00:53:12
【问题描述】:
我对网络脚本有些陌生。我习惯了 Java 的 try-catch 风格,而 Javascript 的风格似乎很相似。但是,当我尝试使用它时,我得到的结果并不完全相同。 这是我的 try-catch 块:
try {
loadAllInfo(<?php echo get_students_from_group();?>);
} catch (exception) {
alert("Invalid data entered, please try again.");
window.location.href = "studentDisplayFromService.php";
} finally {
setHTMLStudentTable("all");
}
目的是如果 PHP 请求失败(输入需要有非常特定的语法,但在这种情况下,无法事先检查),这会将用户带回输入网站,因为PHP 请求发回无法解析为 JSON 的内容。 当语法正确时,我的代码可以完美运行,但当语法不正确时,它不会捕获异常,而是显示在控制台上:
SyntaxError: expected expression, got '
我曾尝试自己在 try 块中抛出异常,例如...
try {
loadAllInfo(<?php echo get_students_from_group();?>);
throw new exception("Error");
}
...在这种情况下它会捕获它,显示警报并将用户带回原始网站。
知道什么可能导致此问题或如何解决它吗?我在这里找不到任何类似的问题:/
非常感谢您!
【问题讨论】:
-
当你
echo json_encode($arr)你不应该 JSON.parse 它。输出不会有引号以使其成为字符串,因此它已经表示 javascript 编译器中的 javascript 数组或对象 -
谢谢,但我也试过了,但问题仍然存在:/
-
查看页面源代码。怀疑它没有完全按照您的期望打印。或者问题不在显示的代码中
-
或者这个代码在 php 文件中不存在,而你试图在 js 文件中运行它
-
好的。我是这么想的。改为发出 cURL 请求。您可以访问远程状态和内容类型标头,如果出现下面评论中显示的错误,则为 500 服务器错误状态,如果它是 json,则将具有 application/json 内容类型(至少应该如此)。一个好的请求库是 Guzzle
标签: javascript php json try-catch