jquery post 提交 时 正常返回但是报:
[08:51:28.731] uncaught exception: [Exception... "prompt aborted by user" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: resource:///components/nsPrompter.js :: openTabPrompt :: line 462" data: no]
这个错误,用firebug 查看的时候显示如上错误信息,
该问题 主要为 用post提交表单的时候 和 用type=submit 提交表单的时候 假如你想在 回调函数内部做一些事情的时候 尤其是你想往页面上输出一些 html div的时候,情况是不一样的
type=sumbit
是一次正常的提交,从发起请求到 response 回到页面上 也就是回到表单处 为一次完整的请求,就是说 请求必须response回到发起提交form的页面上,才算一次完整的请求
type=post
jquery post 请求的时候 请求的 完整 路径及应答也和上面一样,但是此刻我们想在回调函数内部做一些事情,所以也就不能让response的终点为页面上了(发起form的页面)而是应该在 jquery ajax 请求完成了之后 将其拦截住
代码:
$(document).ready(function (){
$('#btn').click(function(){
var q = document.getElementById("k").value;
//var params = {"query":document.getElementById("k").value};
var url = 'http://localhost:8080/solrClient/g.action';
$.post(url,{query:q},function(data){
var data = eval(data);
for (var i = 0; i < data.length; i++) {
$('#qqq').append("dddddd");
}
},"json")
})
})
修改为:
$(document).ready(function (){
$('#btn').click(function(){
var q = document.getElementById("k").value;
//var params = {"query":document.getElementById("k").value};
var url = 'http://localhost:8080/solrClient/g.action';
$.post(url,{query:q},function(data){
var data = eval(data);
for (var i = 0; i < data.length; i++) {
$('#qqq').append("dddddd");
}
},"json")
return false;
})
})
当 button 的 click事件即将结束的时候 将其拦截住
粗糙的理解,希望共同探讨这个问题