【问题标题】:Need to access a different domain url需要访问不同的域 url
【发布时间】:2019-10-19 01:05:21
【问题描述】:

我需要从这个 url 加载页面:https://medalist-a805c.web.app/HeardSuggest_Medalist.html 实际上是从快速服务器加载页面。我可以使用快速中间件 cors。但问题是,即使我最终需要加载此网址:https://www.alwaysheard.com/embed/Medalist/brand/$2a$10$Z9ib22YZyRWWZz/Vlzju3u9eZCZM.a8oUYorNPsKGzLPKu6vM696K?uname=embed&orgin=https%3A%2F%2Fwww.alwaysheard.com。

我面临的奇怪问题是它总是返回主页而不是我试图获取的网址:https://www.alwaysheard.com/embed/Medalist/brand/$2a$10$Z9ib22YZyRWWZz/Vlzju3u9eZCZM.a8oUYorNPsKGzLPKu6vM696K?uname=embed&orgin=https%3A%2F %2Fwww.alwaysheard.com

任何帮助将不胜感激。非常感谢。

这是一个 expressjs 服务器。

这是我的前端调用代码:

$.ajax({
        url: _url,
        data: { uname: "embed", orgin: _origin },
        // dataType: 'json',
        crossDomain: true,
        type: "GET",
        mode: 'no-cors',
        headers: {
            'mode': 'no-cors',
            // "X-TOKEN": 'xxxxx',
            // 'x-Trigger': 'CORS',
            // 'Access-Control-Allow-Headers': 'x-requested-with',
            // "Access-Control-Allow-Origin": "*",
            // 'Authorization': 'Bearer fadsfasf asdfasdf'
        },
        success: function (data) {
            console.log("data: ", data);
            $("body").html(data);
        }
    });

在后端我使用app.use(cors());

【问题讨论】:

    标签: node.js express cors


    【解决方案1】:

    Your URL 首先将 302 重定向返回到主页,然后 $.ajax() 系统(实际上是它下面的 XMLHttpRequest 系统)自动跟随该重定向。

    您可以在此处查看有关该主题的讨论:

    How to prevent ajax requests to follow redirects using jQuery

    在较新的浏览器中,您可以改用fetch() 接口,它包含一个redirect option,允许您告诉它不要跟随重定向。

    仅供参考,目前尚不清楚您在这里真正想要完成什么。没有“页面”可以从 this URL 检索。这将返回 302 状态和一些标题,没有页面。


    如果您不清楚,your long url 会返回此响应:

    HTTP/1.1 302 Found
    Date: Fri, 18 Oct 2019 17:04:05 GMT
    Content-Type: text/plain; charset=utf-8
    Content-Length: 23
    Connection: keep-alive
    Server: nginx/1.14.1
    Access-Control-Allow-Origin: *
    Set-Cookie: _csrf=j6JfsEb_JbmSJlvHDoyhgatS; Path=/
    Set-Cookie: connect.sid=s%3A8C1PVNBcm5395dwmPJ4Xbl7BNASxPH4W.WFZ6uz3NklxaObnWvZaZXI%2BoH5VdM9dnOi2VCTw3J%2BI; Path=/; Expires=Mon, 15 Oct 2029 17:04:05 GMT; HttpOnly
    Surrogate-Control: no-store
    Cache-Control: no-store, no-cache, must-revalidate, proxy-revalidate
    Pragma: no-cache
    Expires: 0
    Location: /
    Vary: Accept
    

    此内容是通过curl -l -v yourlongurl 检索到的。

    【讨论】:

    • 你能举一个带有重定向选项的获取接口的例子吗?
    • @RezoanulAlamRiad - 重定向选项描述为here。使用起来很简单。您真正想在这里解决什么问题?重定向响应中没有任何内容(除了标题),所以我不知道你在这里真正想解决什么问题。
    • 它应该加载该链接的内容。内容应该是这样的:alwaysheard.com/test.html
    • @RezoanulAlamRiad - 您要使用$.ajax() 加载哪个确切的 URL?因为https://www.alwaysheard.com/embed/Medalist/brand/$2a$10$Z9ib22YZyRWWZz/Vlzju3u9eZCZM.a8oUYorNPsKGzLPKu6vM696K?uname=embed&orgin=https%3A%2F%2Fwww.alwaysheard.com 不会加载或重定向到https://www.alwaysheard.com/test.html。它返回一个 302 响应,其位置标头为 /
    • 此网址:alwaysheard.com/test.html 加载所需的内容。它实际上是在调用这个 url:alwaysheard.com/embed/Medalist/brand/$2a$10$Z9ib22YZyRWWZz/…。现在我需要从不同的来源/域加载这些内容。现在不稳定吗?
    猜你喜欢
    • 2012-09-10
    • 1970-01-01
    • 2013-11-20
    • 2016-03-26
    • 2018-09-11
    • 1970-01-01
    • 1970-01-01
    • 2017-03-12
    • 1970-01-01
    相关资源
    最近更新 更多