今天遇到一个问题,jQuery的Ajax取得卡余额
var url='${ajaxGetCardBalance}';
jQuery.ajax({
url : url,
type : "get",
dataType : "json",
data : params,
success : function(data) {
var result = eval("(" + data + ")");
if(result.code == '1') {
jQuery('#lblCardBalance').html(result.pros.balance);
}
else if(result.code == '-1'){
alert(result.message);
}
}
});
怎么也取不到值,点击后没有反应,
仔细分析,原来这个页面使用了ssl,但访问这个页面却是普通http链接,导致ajax用https访问,但当前域却是http模式,导致出问题,比如当前域(浏览器地址栏里面)是http://www.xxx.com,则ajax的url也需要基于http://www.xxx.com,不能是https://www.xxx.com,同理如果当前域是https://www.xxx.com,ajax的url也不能用http。
还有一个问题需要注意,如果页面设置了<base href="http://www.xxx.com/"/>,则ajax也不能访问ssl模式的url(即便当前域是ssl模式也不行),目前测试看,firefox是可以的,但ie系列没法返回,现象和上面一样。
来自:http://linct21.blog.163.com/blog/static/847219382012991575680/
var url='${ajaxGetCardBalance}';
jQuery.ajax({
url : url,
type : "get",
dataType : "json",
data : params,
success : function(data) {
var result = eval("(" + data + ")");
if(result.code == '1') {
jQuery('#lblCardBalance').html(result.pros.balance);
}
else if(result.code == '-1'){
alert(result.message);
}
}
});
怎么也取不到值,点击后没有反应,
仔细分析,原来这个页面使用了ssl,但访问这个页面却是普通http链接,导致ajax用https访问,但当前域却是http模式,导致出问题,比如当前域(浏览器地址栏里面)是http://www.xxx.com,则ajax的url也需要基于http://www.xxx.com,不能是https://www.xxx.com,同理如果当前域是https://www.xxx.com,ajax的url也不能用http。
还有一个问题需要注意,如果页面设置了<base href="http://www.xxx.com/"/>,则ajax也不能访问ssl模式的url(即便当前域是ssl模式也不行),目前测试看,firefox是可以的,但ie系列没法返回,现象和上面一样。
来自:http://linct21.blog.163.com/blog/static/847219382012991575680/
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/7459/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
评论列表