欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

jquery跨域錯誤怎么解決

徐蘭芬1年前8瀏覽0評論

在前端開發中,經常會使用到 jquery 進行異步請求操作。但是,由于安全原因瀏覽器限制了不同域名下的資源訪問(跨域問題),因此 jquery 跨域錯誤也屢見不鮮。

當我們在瀏覽器控制臺中看到以下提示時:

XMLHttpRequest cannot load http://example.com/api. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.

其實這是由于 api 請求的響應頭未攜帶 Access-Control-Allow-Origin,導致瀏覽器認為該請求不可信任。如何解決這樣的 jquery 跨域問題呢?下面提供兩種解決方案:

1. 在服務端配置 Access-Control-Allow-Origin

在 api 請求響應頭中添加 Access-Control-Allow-Origin 字段,允許指定域名的跨域請求。例如:
Access-Control-Allow-Origin: http://localhost

這里我們使用 php 代碼實現:

header('Access-Control-Allow-Origin: http://localhost');
header('Access-Control-Allow-Headers: X-Requested-With');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');

2. 使用 jquery 的 jsonp 方式

jQuery.ajax({
type: 'GET',
url: 'http://example.com/api',
dataType: 'jsonp', // 返回 JSONP 格式的數據
jsonp: 'callback', // 指定回調函數名的鍵名
success: function(data){ console.log(data); }
});

jsonp 方式是使用 script 標簽進行跨域請求,在響應數據中加入 js 語句,會返回 callback(data) 函數的執行,從而達到跨域的目的。

以上兩種方式中,使用第一種方式需要服務端改動,第二種方式依賴于數據格式的支持,適用場景不同。