为xml.HTTP.Request设置referer?

时间:2014-11-30 21:36:34

标签: javascript jquery ajax internet-explorer

我使用

成功发送了xml.http.request
var createCORSRequest = function(method, url) {
  var xhr = new XMLHttpRequest();
  if ("withCredentials" in xhr) {
    // Most browsers.
    xhr.open(method, url, true);
  } else if (typeof XDomainRequest != "undefined") {
    // IE8 & IE9
    xhr = new XDomainRequest();
    xhr.open(method, url);
  } else {
    // CORS not supported.
    xhr = null;
  }
  return xhr;
};

var url = 'http://www.whatismyip.com';
var method = 'GET';
var xhr = createCORSRequest(method, url);

xhr.onload = function() {
  // Success code goes here.
};

xhr.onerror = function() {
  // Error code goes here.
};


xhr.setRequestHeader('referer', 'http://www.google.com');
xhr.send();

然而,我无法定义我的引用者。添加自定义引用的正确方法是什么?

2 个答案:

答案 0 :(得分:11)

你做不到。 XMLHttpRequest specification forbids更改referer标题(这会阻止其中的网站绕过某些网站使用引用的安全检查)。

  

如果header是以下标题之一的不区分大小写的匹配项,请终止这些步骤:

     
      
  • ...
  •   
  • Referer的
  •   
  • ...
  •   

答案 1 :(得分:0)

您可以尝试以下操作:

xhr.setRequestHeader('X-Referer', window.location.href);

然后阅读此自定义 X-Referer 标头。