我无法在网上找到关于这个神秘bug的任何内容。我写了一个简单的Ajax,调用CakePHP Controller-Function来渲染一个简单的View。最后,我想将渲染的HTML放入Popup:
Ajax:
$.ajax({
url: $('base').attr('href') + '/myController/renderPopupContent/' + this.view,
type: "GET",
dataType: "html",
context: this,
success: function( data ) {
this.content = data;
this.show();
},
error: function(xhr, status) {
showMessage(status, xhr);
}
});
现在我得到一个 jQuery-Error ,其中写着:
Uncaught SyntaxError: Unexpected token <
这是因为jQuery尝试(自动^^)将响应解析为JSON。如果我调试脚本它在第541行的 jQuery(1.9.1)时断开,它真的试图将该html响应(STRING!)解析为JSON。
我如何避免这种情况并让jquery知道dataType&#34; HTML&#34;
其他信息:
jQuery-Error(@ Ln541)在&#34; alert();&#34;之后发生。在我的成功回调中,所以在抛出错误时已经完成了Ajax。
在另一个JS-File的某个地方,我发现了这个片段:
$(document).ajaxSuccess(function(evt, xhr, options) {
var response = $.parseJSON(xhr['responseText']);
这显然会在每个ajax之后触发并尝试解析响应。
答案 0 :(得分:0)
我在另一个 JS 文件的某处找到了这个片段:
$(document).ajaxSuccess(function(evt, xhr, options) {
var response = $.parseJSON(xhr['responseText']);
这显然会在每次 ajax 后触发并尝试解析响应。