【问题标题】:Ajax setRequestHeader is not workingAjax setRequestHeader 不起作用
【发布时间】:2011-08-02 15:05:28
【问题描述】:

我正在尝试向 ajax 请求添加标头。

我使用 setRequestHeader 但它什么也没做。我可以在 Firefox 中查看请求标头不包含身份验证!我做错了什么?

以及如何添加标题?

$.ajax({
       type: "POST",
       contentType: "application/json; charset=utf-8",
       url: "http://test/test.svc/news",
       dataType: "json",
       beforeSend : function(xhr) {
        xhr.setRequestHeader("Authentication", "Basic " + Base64.encode(username + ":" + password))
       },
       success: function(data) {
        alert('Success');
       },
       error: function() {
        alert("Loading data error...");
       }
      });
     }

【问题讨论】:

  • 你最后多了一个}。那是错字吗?另外,Base64 通话是否有效?
  • 通话创建没有问题。我试过没有基础 xhr.setRequestHeader("test","test");什么都没有。

标签: javascript ajax authentication jquery


【解决方案1】:

改用用户名和密码

$.ajax({
       type: "POST",
       contentType: "application/json; charset=utf-8",
       url: "http://test/test.svc/news",
       dataType: "json",
       username: 'username', /* not user */
       password: 'pass',
       success: function(data) {
        alert('Success');
       },
       error: function() {
        alert("Loading data error...");
       }
      });
     }

用户名 - 用于响应 HTTP 访问身份验证请求的用户名

【讨论】:

  • @Evgeny:这可能是 Firefox 的保护……也许吧?
  • 在其他浏览器中同样的问题
  • xhr.getAllResponseHeaders() 返回 null
  • 是username: "user" 不是user:...
猜你喜欢
  • 1970-01-01
  • 2012-05-19
  • 1970-01-01
  • 2015-09-19
  • 1970-01-01
  • 1970-01-01
  • 2015-02-28
  • 2013-06-28
  • 2016-06-25
相关资源
最近更新 更多