nanqic

如何请求不允许跨域的网站接口

  •  
  •   nanqic · Mar 12, 2024 · 1703 views
    This topic created in 840 days ago, the information mentioned may be changed or developed.

    如题,要跨域请求一个网站接口,对方网站点击按钮执行 fetch ,代码如下

    fetch(n, {
            credentials: "include",
            referrer: document.location.href
        }
    

    控制台查看 Network 信息如下:

    请求 URL: https://xxdomain.com/q/xxx
    请求方法: GET
    
    (下面是 header)
    Cookie: connect.sid=s%3Akdxxx
    Host: xxdomain.com
    Referer: xxdomain.com
    

    尝试:尝试了用 express 代理,没成功。

    let n = '接口地址'
            fetch(n, { 
                headers:{
                    'Cookie': 'connect.sid=s%3xx',
                }
                , referrer: 'xxx' })
            
            res.send(response.data);
    

    在 header 中放置 Cookie 跟 credentials: "include"一样吗?对方检测到了跨域,不让请求。

    欲求:有没有办法模仿浏览器的请求,带 cookie 访问,因为对方网站是不用登录的,cookie 很容易获取到。 前端或后端有办法模仿浏览器请求,来获取到接口数据吗?

    cxe2v
        1
    cxe2v  
       Mar 12, 2024
    跨域只是浏览器不允许跨域,你用服务器代码去请求,不存在跨域问题
    flmn
        2
    flmn  
       Mar 13, 2024
    跨域是调用方浏览器的限制,不是被调用方服务器的限制。

    被调用方服务器可以做一些便利,告诉调用方允许跨域。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3371 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 11:59 · PVG 19:59 · LAX 04:59 · JFK 07:59
    ♥ Do have faith in what you're doing.