2011-08-02 79 views
2

我正在尝试向ajax请求添加标题。Ajax setRequestHeader不起作用

我使用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..."); 
     } 
     }); 
    } 
+1

您已经额外'}'最后。这是一个错字吗?此外,是'Base64'调用工作? – Mrchief

+1

创建没有问题的调用。而我尝试没有基地xhr.setRequestHeader(“测试”,“测试”);没事了。 – Evgeny

回答

5

尝试的用户名和密码,而不是

$.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访问认证请求

+1

我检查了这段代码。没有添加到请求标题??! – Evgeny

+1

@Evgeny:这可能是Firefox的保护...也许? – genesis

+1

我不知道。我尝试设置标题并获取它。并且它返回null ... – Evgeny