我在Chrome中遇到了錯誤Uncaught SyntaxError: Unexpected token ILLEGAL
。Javascript:意外的令牌非法
的代碼是
$("form#new_redemption").live('submit', function() {
event.preventDefault();
var that = $(this);
var action = that.attr('action');
var data = that.serialize();
$.ajax({
type: "POST",
url: action,
data: data,
dataType: 'json',
beforeSend: function(request) {
request.setRequestHeader("Accept", "application/json");
},
success: function(res) {
var response = JSON.parse(res.responseText); // <~~~ Unexpected token ILLEGAL
if (response.message) {
that.slideUp();
$("#results").html(response.message).attr('class', 'notice').slideDown();
}
else if (response.url) {
window.location = response.url
}
},
error: function(res) {
var response = JSON.parse(res.responseText);
$('#results').html(response.error).attr('class', 'error').slideDown();
}
});
return false;
});
的錯誤,這個代碼的偉大工程。但每次它的成功響應我都會得到一個錯誤。這裏有問題嗎?有沒有在VIM中強調代碼中非法javascript字符的方法?
謝謝!
放'的console.log(res.responseText);'JSON.parse前並顯示輸出。 – iafonov
從你的ajax調用返回的結果是不好的。解析器正在踢出錯誤,因爲響應是無效的json。正如馬克建議嘗試通過json驗證器運行結果。 – kasdega
我得到了'res.responseText'的'undefined'。對於成功的迴應是否有不同的屬性? –