使用jQuery在AJAX请求中添加标头
我想将自定义标头添加到来自jQuery的AJAX POST请求中。使用jQuery在AJAX请求中添加标头
我已经试过这样:
$.ajax({
type: 'POST',
url: url,
headers: {
"My-First-Header":"first value",
"My-Second-Header":"second value"
}
//OR
//beforeSend: function(xhr) {
// xhr.setRequestHeader("My-First-Header", "first value");
// xhr.setRequestHeader("My-Second-Header", "second value");
//}
}).done(function(data) {
alert(data);
});
当我发出这个请求,我看有萤火,我看到这个标题:
OPTIONS XXXX/YYYY HTTP/1.1
主持人:127.0 .0.1:6666
User-Agent:Mozilla/5.0(Windows NT 6.1; WOW64; rv:11.0)Gecko/20100101 Firefox/11.0
Accept:text/html,application/xhtml + xml,application/xml; q = 0.9,/; Q = 0.8
接受语言:FR,FR-FR; Q = 0.8,EN-US; Q = 0.5,连接; Q = 0.3
接受编码:gzip,放气
连接:保持-alive
来源:空
访问控制请求-方法:POST
访问控制请求报头:我先头,我-第二头
杂注:无缓存
Cache-Control:no-cache
为什么我的自定义页眉去Access-Control-Request-Headers
:
访问控制请求报头:我先头,我-第二头
我期待这样的标头值:
我入先部首:第一值
我的 - 第二报头:第二值
可能吗?
你在Firefox中看到的不是实际的请求;请注意,HTTP方法是OPTIONS,而不是POST。这实际上是“飞行前的要求是,浏览器发出来确定跨域AJAX请求是否应该被允许:
在飞行前的访问控制请求,头头请求包含实际请求中的标题列表。然后希望服务器在浏览器提交实际请求之前报告在这种情况下是否支持这些头文件。
谢谢,从前端角度来看这真的很难看。 – antpaw 2015-03-05 15:18:41
下面是一个例子,如何设置请求头中的一个jQuery AJAX调用:
$.ajax({
type: "POST",
beforeSend: function(request) {
request.setRequestHeader("Authority", authorizationToken);
},
url: "entities",
data: "json=" + escape(JSON.stringify(createRequestObject)),
processData: false,
success: function(msg) {
$("#results").append("The result =" + StringifyPretty(msg));
}
});
下面这段代码对我的作品。我总是只使用单个括号,并且它工作正常。我建议你应该只使用单个括号或只使用双括号,但不要混淆在一起。
$.ajax({
url: 'YourRestEndPoint',
headers: {
'Authorization':'Basic xxxxxxxxxxxxx',
'X_CSRF_TOKEN':'xxxxxxxxxxxxxxxxxxxx',
'Content-Type':'application/json'
},
method: 'POST',
dataType: 'json',
data: YourData,
success: function(data){
console.log('succes: '+data);
}
});
希望这回答你的问题...
这就是为什么你不能用Javascript创建一个bot,因为你的选择仅限于浏览器允许你做的事情。您不能仅仅订购遵循大多数浏览器遵循的CORS
策略的浏览器,将随机请求发送到其他来源,并让您获得简单的响应!
此外,如果您尝试从浏览器附带的开发人员工具手动编辑一些请求标头,如origin-header
,浏览器将拒绝您的编辑,并可能发送预检OPTIONS
请求。
可能的重复[如何添加一个自定义的HTTP头到js或jQuery的ajax请求?](http://*.com/questions/7686827/how-can-i-add-a-custom-http -jader-to-ajax-request-with-js-or-jquery) – Prestaul 2013-10-23 18:45:34