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漏洞似乎触及了这个问题.
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)