JQuery Ajax跨域的問題

執筆記憶的空白發表於2016-08-22

今天前端因為需要ajax呼叫兩個不同的專案,請求域不一樣,所以涉及ajax跨域的問題 ,其實很簡單,具體如下



原來的ajax請求如下:

$.ajax({
		type:"post",
		url:platformUrl +"/security/modifyPwd.do",
		data:$('#updatepwdform').serialize(),
		dataType:"json",
		success:function(data){
			$("#updatepwd_btn").click();
			$.toast("修改成功,系統即將退出,請重新登入",1500);
		},
		error: function() {
			$.toast("網路異常",1500);
        }
	});


只需改動ajax固定引數

dataType:"jsonp",
crossDomain:true,
jsonpCallback:"jsonpCallbackFun",
jsonp:"callback",


且後臺返回的資料格式必須是:jsonpCallbackFun(json資料);  這裡的jsonpCallbackFun是你自定義的回撥函式方法名

改動後:

$.ajax({
		type:"post",
		url:platformUrl +"/security/modifyPwd.do",
		data:params,
		dataType:"jsonp",
		crossDomain:true,
		jsonpCallback:"jsonpCallbackFun",
		jsonp:"callback",
		success:function(data){
			if(data.result==1){
				$("#updatepwd_btn").click();
				$.toast("修改成功,系統即將退出,請重新登入",1500);
				setTimeout("logout()",1600);
			}else if(data.result==2){
				$.toast(data.msg,1500);
			}else{
				$.toast("修改失敗",1500);
			}
		},
		error: function() {
			$.toast("網路異常",1500);
		}
	});


這樣即可跨域請求了



相關文章