我已经浏览了类似的问题,但我似乎无法让解决方案起作用。我试图使用ajax将对象从php文件发送到js文件。我可以在php文件中print_r($decoded)
然后将其作为js文件中的字符串输出。但是我似乎无法将其解析/转换回用于js文件的对象。我想这样做,因为我想稍后从对象访问多个属性。我认为它需要通过ajax作为变量来完成,我需要传递给php脚本是在基于keyup / keydown输入发送之前动态生成的。一些答案提示类似
$.getJSON("decide-token.php", function(data) {
alert("Value for 'a': " + data.a + "\nValue for 'b': " + data.b);
});
但我不认为这对我有用。
这是我最近针对类似问题的一些较旧答案的尝试:
main.js
tokenKey.bind('keyup keydown', function(){
var the_key = tokenKey.val();
$.ajax({
url: '../http/decode-token.php',
type: 'post',
dataType : 'json',
data: {
'token': token,
'key' : the_key
},
success: function(data, status) {
var obj = $.getJSON(data);
console.log(obj.iat);
},
error: function(xhr, desc, err) {
console.log(xhr),
console.log('Details: ' + desc + "\nError:" + err);
}
}); // end AJAX
译码token.php
require '../includes/bootstrap.php';
use \Firebase\JWT\JWT;
$token = $_POST['token'];
$key = $_POST['key'];
$decoded=JWT::decode($token, $key, array('HS256'));
echo json_encode($decoded);
我目前正在将此错误打印到控制台:
Details: parsererror
Error:SyntaxError: Unexpected token < in JSON at position 0
我做错了什么?提前致谢。