"Access Control Request Headers"是在使用jQuery进行AJAX请求时添加到标头中的。
"Access Control Request Headers"是在使用jQuery进行AJAX请求时添加到标头中的。
我想要在jQuery的AJAX POST请求中添加自定义的头部。
我试过以下代码:
$.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); });
当我发送请求并且使用FireBug查看时,我会看到这个头部:
OPTIONS xxxx/yyyy HTTP/1.1
Host: 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
Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Origin: null
Access-Control-Request-Method: POST
Access-Control-Request-Headers: my-first-header,my-second-header
Pragma: no-cache
Cache-Control: no-cache
为什么我的自定义头部被放在Access-Control-Request-Headers
中:
Access-Control-Request-Headers: my-first-header,my-second-header
我期望的是这样的头部值:
My-First-Header: first value
My-Second-Header: second value
是否有可能实现这个目标?
下面的代码对我来说可以工作。我总是只使用单引号,并且它可以很好地工作。我建议您只使用单引号或只使用双引号,而不是混用。
$.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); } });
这是一个如何在jQuery Ajax调用中设置请求头的示例:\n\n
$.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)); } });