在Web開發(fā)中,跨域請(qǐng)求限制(Same-Origin Policy)對(duì)于前端頁面的開發(fā)和數(shù)據(jù)交互帶來了一定的限制,而jQuery為我們提供了一些便捷的跨域請(qǐng)求操作。
如果我們需要向一個(gè)跨域的頁面發(fā)送post請(qǐng)求,并且需要在請(qǐng)求成功后刷新當(dāng)前頁面,我們可以使用如下的代碼:
$.ajax({ type: 'POST', url: 'http://example.com/submit', data: $('#form').serialize(), crossDomain: true, xhrFields: { withCredentials: true }, success: function () { location.reload(); } });
以上代碼將向'http://example.com/submit'發(fā)送一個(gè)跨域POST請(qǐng)求,并將表單數(shù)據(jù)序列化后作為POST請(qǐng)求的數(shù)據(jù)內(nèi)容(#form為表單的id),同時(shí)設(shè)置了crossDomain和xhrFields.withCredentials為true。其中,crossDomain設(shè)置為true是告訴jQuery此次請(qǐng)求是跨域請(qǐng)求,而xhrFields.withCredentials為true則可以使跨域請(qǐng)求攜帶當(dāng)前頁面的cookie信息。
在請(qǐng)求成功后,將執(zhí)行l(wèi)ocation.reload()刷新當(dāng)前頁面。
在進(jìn)行跨域請(qǐng)求時(shí),需要注意的是跨域的服務(wù)器需要允許跨域請(qǐng)求,否則將會(huì)出現(xiàn)跨域請(qǐng)求失敗的情況。