我有这个$ .ajax(使用jquery)代码,它最初是$ .get现在已经注释但由于某种原因我总是得到错误而且我找不到它有什么问题= /,我忽略了什么吗?
$.fn.randomContent = function(options){
var contentArray = new Array();
var dType = "html";
var defaults = {
xmlPath: "../xml/client-quotes.xml",
nodeName: "quote"
};
var options = $.extend(defaults, options);
alert(options);
$.ajax({
type: "GET",
url: "../xml/client-quotes.xml",
dataType: "html",
success: function(){
$(defaults.nodeName).each(function(i){
contentArray.push($(this).text());
});
$(this).each(function(){
$(this).append(getRandom());
});
},
error: function(){
alert("Something Went wrong");
}
});
/*$.get(defaults.xmlPath, function(){
alert("get");
$(defaults.nodeName).each(function(i){
contentArray.push($(this).text());
});
$(this).each(function(){
$(this).append(getRandom());
});
}, type);//$.get*/
};
这是getRandom()函数:
function getRandom() {
var num = contentArray.length
var randNum = Math.floor(Math.random()*num)
var content = "";
for(x in contentArray){
if(x==randNum){
content = contentArray[x];
}
};
alert(content);
return content;
}
答案 0 :(得分:1)
可能是浏览器正在缓存您的GET请求。在这种情况下,要么:
我更喜欢选项#1,特别是因为POST操作旨在改变服务器上的某些内容,因此我们应该在我们的操作实际上修改服务器状态时使用该方法。另一方面,GET请求只是读取数据的请求。
我觉得GET请求更适合此任务,因此在我自己的代码中,我会阻止响应的缓存。
答案 1 :(得分:0)
这个网址必须是绝对的吗?我从来没有尝试用“../”来执行ajax请求。你安装了FireBug吗?您可以检查服务器的响应标头。