我正在尝试在Firefox中测试Jquery ajax调用,但它无法正常工作。我的意思是我的服务器没有收到任何请求。但是当我在IE8中测试时,它工作正常。这是我的ajax电话:
$("#getWeatherReport").click(function(){
$cityName = "New York";
$.ajax({
type: "POST",
dataType:"xml",
url: "http://localhost:8080/Test/WeatherServlet",
data: "cityName="+$cityName,
success: function(data) {
alert($("report", data).text());
},
error: function(xhr, textStatus, errorThrown) {
alert('ERROR['+xhr.statusText+']');
}
});
});
甚至没有调用错误功能。从我的服务器代码(java)我将内容类型设置为“text / xml”。 有什么建议吗?
答案 0 :(得分:2)
你的字符串没有被正确序列化,我不是肯定如果这是问题,但它可能是,它肯定是一个潜在的以后,试试这个立即测试:
var $cityName = "New+York";
作为一种更永久的解决方案,将data
作为对象传递,如下所示:
data: {cityName: $cityName},
答案 1 :(得分:2)
您安装了Firebug吗?
你最好的选择是安装Firebug,它附带一个控制台,可以通知你任何javascript错误。您也可以使用它(通过“网络”标签)来监控您页面发出的所有请求。
从我所看到的,你的代码看起来不错(除了@Nick Craver指出的可能问题)
另外,为什么cityName
变量上的'$'? Javascript中的'$'前缀是为机器生成的代码保留的(因此它不会与用户代码冲突)。
答案 2 :(得分:1)
尝试在ff :: https://addons.mozilla.org/en-US/firefox/addon/1843/
中安装firebug插件然后检查:::: Net Tab>>全部选中
刷新页面,看看你的ajax调用是否实际被调用。如果是,则调用中存在任何语法错误或任何变量null错误。如果一切正常,那么你可以考虑进一步的问题
答案 3 :(得分:0)
通常情况下,当我最终得到parseerror
时,意味着返回标头类型错误或者服务器以某种方式使用响应发送了额外数据。例如,如果我想恢复JSON,我会从x-debug获得JSON和一些HTML。
此外,OPTIONS
请求是针对跨域请求的,这是@Nick所暗示的。
帮助您started的有用链接。