JQuery是一個非常流行的Javascript庫,提供了豐富的功能幫助前端開發(fā)人員快速完成各種任務(wù),其中的AJAX功能尤其強大。但是,在處理跨域請求時,JQuery的AJAX可能會稍微有些棘手。
所謂跨域請求,是指AJAX請求發(fā)起的域與響應(yīng)的域不同,例如從abc.com發(fā)起請求訪問xyz.com,由于瀏覽器的同源策略限制,請求會被拒絕。JQuery中的AJAX請求默認(rèn)也遵循同源策略,但是可以通過設(shè)置特定的參數(shù)實現(xiàn)跨域請求。
$.ajax({ url: 'http://example.com', type: 'GET', dataType: 'json', crossDomain: true, success: function(data) { console.log(data); }, error: function(error) { console.log(error); } });
在上述示例中,通過設(shè)置crossDomain參數(shù)為true,告訴JQuery進行跨域請求。另外,還需要同時設(shè)置dataType參數(shù)為'json',這是因為在跨域請求時,服務(wù)器端需要發(fā)送特定的響應(yīng)頭信息來支持JSONP方式,詳見下文。
在服務(wù)端,支持跨域請求的方式有幾種。JSONP是其中一種很流行的方式,其原理是通過動態(tài)創(chuàng)建一個