【发布时间】:2014-01-06 07:58:56
【问题描述】:
从 Chrome 开发者控制台执行 console.log($obj.longurl) 时提示错误
Uncaught SyntaxError: Unexpected token {
$.ajax.complete
L jquery.min.js:19
N
以下是我从 HTML 页面执行并提交表单以调用外部 PHP 文件的脚本。
Javascript 是从 http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
调用的$('#shortener').submit(function(e) {
e.preventDefault();
$('#status').text('');
$.ajax({
cache: false,
type: "POST",
dataType: "json",
data: $('#shortener').serialize(),
url: $('#shortener').attr('action'),
complete: function (XMLHttpRequest, textStatus) {
console.log(XMLHttpRequest);
$obj = JSON.parse(XMLHttpRequest.response);
if ($obj.loginResult == "Passed") {
($('#longurl').val() === "") ? console.log("Empty longurl") : console.log($obj.longurl);
} else {
$('#status').text("Login Failed");
};
}
});
return false;
});
PHP
echo json_encode(array('loginResult' =>'Passed'));
echo json_encode(array('longurl' => BASE_HREF . $shortened_url));
typeof $obj.longurl是字符串但是不知道为什么可以返回到$('#shortener').val(),有没有类似的经验和解决方法?
【问题讨论】:
-
顺便说一句,下次尽量缩进你的代码,这样有点难读,尤其是当主要问题是块语法时,这将更容易解决如果代码正确缩进。
-
您是否检查过您的响应是有效的 JSON 格式?
-
合并2个数组并放一个echo json_encode
标签: javascript php ajax