jQuery Ajax是一種十分常用的前端開發技術,它可以實現前后端數據的異步傳輸和交互。而不同域名下的Ajax請求則是jQuery Ajax中一個非常重要的問題。
通常情況下,jQuery Ajax中的請求和后臺服務地址是位于同一個域名下的。這時候只需要將請求的url設置為相對地址即可。但是,當我們需要請求在不同域名下的數據時,就會遇到跨域問題。
跨域問題是由瀏覽器的同源策略所導致的。同源策略是瀏覽器的一項安全措施,它規定了不同源之間的 JavaScript 交互是被禁止的。
$.ajax({
url: 'http://www.example.com/api/something',
type: 'get',
success: function(data) {
console.log(data);
}
});
如上所示,當我們在一個域名為www.mysite.com的頁面中發起一個指向www.example.com的Ajax請求時,就會出現跨域問題。
當然,我們可以通過設置后臺服務支持跨域請求來解決該問題。具體而言,通過設置HTTP頭信息,來允許其他域名下的Ajax請求,如下所示:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT',
'Access-Control-Allow-Headers': 'Content-Type'
});
res.end('Hello World!');
}).listen(8888);
另一種解決方法是使用JSONP。JSONP是利用