jQuery AJAX将HTML响应解析为JSON

时间:2014-04-08 06:42:26

标签: jquery html json cakephp

我无法在网上找到关于这个神秘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之后触发并尝试解析响应。

1 个答案:

答案 0 :(得分:0)

我在另一个 JS 文件的某处找到了这个片段:

$(document).ajaxSuccess(function(evt, xhr, options) {
    var response = $.parseJSON(xhr['responseText']);

这显然会在每次 ajax 后触发并尝试解析响应。