网站上拉社保的时候遇到jquery ajax 跨域请求请求失败,怎么办

目前的项目中有这样的需求,如果用户的状态因已登录太久已经失效(登录超时,用户自己不知道),用户在操作发起一个ajax请求的时候服务端是无法返回有效数据的,而ajax请求的状态还是成功,会执行配置项里的success函数参数或者done的异步回调。这时需要我们在请求成功后判断用户是否已经登录超时,在每一个ajax的成功回调里加是不现实的的,我们需要做统一处理。执行成功回调有两种格式,一种是放在ajax参数里面,如下:$.ajax({
url:'getData.jsp',
success:function(data){
// 处理成功回调
error:function(a,b,c){
alert(&请求失败:&+b);
}});另一种是在较新的jQuery版本里所支持的异步回调格式:$.ajax({
url:'getData.jsp',
dataType:'JSON'}).done(function(data){
// 处理成功回调}).fail(function(a,b,c){
alert('请求失败:'+b);});如果我们能够截获到所返回的data数据,然后判断其某个属性值是否是超时状态值即可,如果是则可以跳转到登陆页。针对以上两种格式的成功回调我们都可以处理,代码如下:
var ajax = $.
$.ajax = function (opt) {
//备份opt中error和success方法
var fn = {
success: function (data, textStatus, jqXHR) {
if (opt.success) {
fn.success = opt.
//扩展增强处理
var _opt = $.extend(opt, {
success: function (data, textStatus, jqXHR) {
//alert('重写success事件');
if (data.status == '408') {
location.href = '/service/login/LogoutForWeb.jsp';
fn.success(data, textStatus, jqXHR);
var def = ajax.call($, _opt);
// 兼容不支持异步回调的版本
if('done' in def){
var done = def.
def.done = function (func) {
function _done(data) {
if (data.status == '408') {
location.href = '/service/login/LogoutForWeb.jsp';
func(data);
done.call(def, _done);
};其实这种对原有的功能函数做进一步包装的处理方式的确可以解决很多问题,遇到要在全局统一处理得问题都可以采取此种思路来做处理。另外,对于一些库内部实现机制的了解真的有助于我们解决一些比较特殊的需求,这也许就是你会比别人更厉害的地方。jquery ajax请求失败_百度知道
jquery ajax请求失败
请教高手看段代码报错!$(function () {&&&&$.ajax({&&&&&&&&&&&&&&& type: &GET&,&&&&&&&&&&&&&&& url: &,&&&&&&&&&&&&&&& dataType: &jsonp&,&&&&&&&&&&&&&&& jsonp: 'callback',&&&&&&&&&&&&&&& success: function (json) {&&&&&&&&&&&&&&&&&&& alert(json);&&&&&&&&&&&&&&& },&&&&&&&&&&&&&&& error: function () {&&&&&&&&&&&&&&&&&&& alert('fail');&&&&&&&&&&&&&&& }&&&&});});
提问者采纳
.cn支持jsonpurl返html内容非纯json内容····解析···
提问者评价
来自团队:
其他类似问题
70人觉得有用
为您推荐:
jquery的相关知识
其他2条回答
&weatherinfo&:[
&city&: &郑州&,
&city_en&: &zhengzhou&,
&date_y&: &日&,
&date&: &&,
&week&: &星期五&,
&fchh&: &11&,
&cityid&: &&,
&temp1&: &12℃~5℃&,
&temp2&: &13℃~5℃&,
&temp3&: &13℃~2℃&,
&temp4&: &13℃~0℃&,
&temp5&: &14℃~-1℃&,
&temp6&: &10℃~-2℃&,
&tempF1&: &53.6℉~41℉&,
&tempF2&: &55.4℉~41℉&,
&tempF3&: &55.4℉~35.6℉&,
&tempF4&: &55.4℉~32℉&,
&tempF5&: &57.2℉~30.2℉&,
&tempF6&: &50℉~28.4℉&,
&weather1&: &多云转小雨&,
这是什么意思,取不到返回的json数据
返回的json格式不正确
&weatherinfo&: {} 改成
&weatherinfo&: []试试
请求的时候已经报错,取不到返回的数据。
他的错误说的是缺少‘;’,自己看看呗
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁ajax请求一直提示失败_百度知道
ajax请求一直提示失败
$(function () {
$('#btn_login').bind('click',function(){
var u=$('#txt_user').val();
var p=$('#password').val();
if (u == &&) {
AlertTips( &请输入帐号&,
if (p == &&) {
AlertTips( &请输入密码&,1000);
url: '&#:U('login/login')#&',
type: &post&,
'user':u,
'password':p,
'__hash__':$('input[name=&__hash__&]').val()
dataType:'json',
error:function(){
AlertTips(&请求失败&,1500);
success:function(data){
if(data.error==0){
location.href=data.
AlertTips(data.msg, 1500);
能够提供debug思路给
提问者采纳
用火狐浏览器firebug看url拼接否确再服务器端打断点看没服务器端没功执行行请私信我我线
提问者评价
给分了。主要是没有找到要提交的页面。一会有问题再问你。。
其他类似问题
为您推荐:
ajax的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 jquery ajax 跨域请求 的文章

 

随机推荐