在Web请求中未设置Referrer标头

时间:2014-08-04 02:31:48

标签: cordova xmlhttprequest referrer

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

(我正在使用Phonegap 3.5.0-0.20.10)

2 个答案:

答案 0 :(得分:2)

正如@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

答案 1 :(得分:1)

HTTP请求通过webview / chromeview(Android)和UIWebView(iOS)处理。在JS / HTML级别上无法更改它。我认为你可以通过调整Cordova层来实现它,不利的一面是,你必须为你支持的所有平台做到这一点。

见:

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


修改

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