【问题标题】:Referrer header is not set in web requests在 Web 请求中未设置 Referrer 标头
【发布时间】:2014-09-26 11:25:27
【问题描述】:

当我通过 Phonegap 加载我的网络应用程序并发出网络请求(通过 AJAX 或其他方式)时,根本没有设置 REFERRER HTTP 标头。这会干扰某些第三方网站的功能。如何发送 REFERRER 标头?

(我使用的是Phonegap 3.5.0-0.20.10)

【问题讨论】:

    标签: cordova xmlhttprequest referrer


    【解决方案1】:

    正如@JamesWong 所说,现在有一个名为cordovaHttp 的插件可用于所有平台。

    您可以使用cordova plugin add https://github.com/wymsee/cordova-HTTP.git 命令添加该插件,然后您可以添加任何http 标头,如下所示。

    cordovaHTTP.post("https://google.com/, {
        id: 12,
        message: "test"
    }, { Authorization: "OAuth2: token" }, function(response) {
        // prints 200
        console.log(response.status);
        try {
            response.data = JSON.parse(response.data);
            // prints test
            console.log(response.data.message);
        } catch(e) {
            console.error("JSON parsing error");
        }
    }, function(response) {
        // prints 403
        console.log(response.status);
    
        //prints Permission denied 
        console.log(response.error);
    });
    

    来源:https://github.com/wymsee/cordova-HTTP

    【讨论】:

    • 嗨@IsmailS,我有一个新的 Cordova 应用程序。添加此插件后,我在哪里实际放置/编写 Javascript 以调用 cordovaHTTP 库并设置自定义标头?
    • @mecampbellsoup 你不需要调用cordovaHttp。当您在设备上运行应用程序时,它将可以直接访问。但是当您在浏览器中运行时将无法访问它。你必须直接调用它,否则你会进行 ajax 调用。在上面的代码中,第三个参数取标头。在那里你可以传递referer header。
    • Salam @IsmailS,我可以将标头默认为本机请求,例如带上图像
    • 如果你的意思是<img src="/path/image.jpg">生成的请求,那就不可能了。
    • @IsmailS 这会在请求中添加“推荐人”吗?如果是,它对我不起作用。
    【解决方案2】:

    HTTP 请求通过 webview/chromeview (Android) 和 UIWebView (iOS) 处理。无法在 JS/HTML 级别更改它。我认为您可以通过调整 Cordova 层来实现它,但不利的一面是,您必须针对您支持的所有平台进行此操作。

    看这个:

    您可能可以编写一个与您的 JS/HTML 代码交互的插件,以确定何时发送自定义 HTTP REFERRER。


    编辑

    对于 iOS,这里有一个干净的示例代码,其中包含您需要的内容:

    【讨论】:

    • 感谢您的评论。您链接到的答案为android提供了解决方案,但是我应该如何在iOS上进行呢?
    • 你好@asdf 我刚刚添加了一个指向 iOS 的链接,它就是这样做的。回复您的进度。
    • 啊,我已经意识到你的第二个 android 链接是用于将 URL 加载到 WebView 中。我正在使用 Javascript(即 JQuery 的 ajax)来加载内容。
    猜你喜欢
    • 2020-07-08
    • 2016-01-19
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 2018-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多