AJAX使用jQuery - 语法错误?

Dei*_*ity 6 html javascript ajax jquery

以下是包含对负责发出AJAX调用的JavaScript函数的调用的HTML.我知道锚标签不应该具有值属性,但我使用它与jQuery的.attr("value")方法.

<a href="javascript:;" onclick="ajaxTest();" title="Execute AJAX" value="executeAJAX">Execute AJAX</a>
Run Code Online (Sandbox Code Playgroud)

以下是JavaScript函数.如果它有任何意义,它本身就包含在.js文件中.

function ajaxTest() {
    $.ajax({
        type: "POST",
        url: "doAJAX",
        data: {"selectedScope": "5",
               "selectedView": "6"},
        dataType: "text",
        success: function(responseData) {
            $("#replaceThis").append(responseData);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

每次单击链接时,Firefox的Web控制台中都会显示"语法错误"消息.但是,JavaScript似乎按预期工作.

我只想了解为什么我收到错误.

我应该补充说我正在使用jQuery 1.7.1.

我已经执行了搜索,我发现的唯一解决方案是"数据"选项的键应该用双引号括起来,所以我已经实现了,但我仍然得到了语法.

谢谢.

编辑:

看看Firebug控制台,上面的代码不会像在Firefox的控制台中那样触发错误,但是,我在POST请求的XML部分看到了以下内容:

XML解析错误:语法错误位置:moz-nullprincipal:{1d13df07-25fb-4058-9f82-ce1bef3c8949}第1行,第1列:
alskdfjlaksjdfjasdfl
^

"alskdfjlaksjdfjasdfl"就是我设置我的servlet以便在测试这些东西时返回的内容.

这有点奇怪,因为看起来jQuery试图将响应解析为XML,尽管我已明确声明它是文本.

Ada*_*dam 14

我最近遇到了同样的问题.jQuery似乎正在正确地处理数据和dataType,而是Firefox返回语法错误,这解释了为什么你的代码按预期执行但仍然向控制台打印错误.

如果查看开发人员控制台,可以看到Firefox将纯文本数据解释为另一种格式(可能是XML).Firefox厌倦了将数据解析为XML,但不能,因为它不是有效的XML导致"语法错误"被打印到控制台.

对我来说这个问题的解决方法是编辑服务器,以便它返回以下标题:

Content-Type: "text/plain"
Run Code Online (Sandbox Code Playgroud)

这似乎只是Firefox的一个问题,Chrome没有遇到这个问题.这里有一个Firefox漏洞似乎触及了这个问题.


Dio*_*ane 8

function ajaxTest() {
    $.ajax({
        type: "POST",
        url: "doAJAX",
        data: {"selectedScope": "5",
               "selectedView": "6"          <---- here (drop comma, add bracket)
               },
        dataType: "text",
        success: function(responseData) {
            $("#replaceThis").append(responseData);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)