首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

jQuery 跨域獲取指定 URL 頁面中最大圖片的限制與方案

     編輯:程式設計疑難解答

核心限制:同源策略

瀏覽器禁止 JavaScript 跨域讀取任意 URL 的 HTML 內容。若目標頁面未設置 Access-Control-Allow-Origin,AJAX 請求會被攔截。

可行方案對比

方案適用場景實現難度
後端代理任意網站、生產環境中等
瀏覽器擴展特定網站、用戶安裝中等
iframe + postMessage目標頁面合作配置高
服務端渲染 (SSR)自有業務系統低

後端代理實現 (Node.js 示例)

// server.js
app.get('/api/fetch-largest-image', async (req, res) => {
    const { url } = req.query;
    const html = await fetch(url).then(r => r.text());
    const $ = cheerio.load(html);
    let maxArea = 0, maxSrc = '';
    $('img').each((i, el) => {
        const w = $(el).width() || 0;
        const h = $(el).height() || 0;
        if (w * h > maxArea) {
            maxArea = w * h;
            maxSrc = $(el).attr('src');
        }
    });
    res.json({ url: maxSrc });
});

前端調用

$.get('/api/fetch-largest-image', { url: targetUrl }, data => {
    console.log('最大圖片:', data.url);
});

結論

純前端 jQuery 無法 突破同源策略獲取任意 URL 內容,必須通過後端代理或合作方配置實現。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved