jquery ajax设置头部,jQuery Ajax 设置请求头
今日在項目ajax訪問中 獲取接口地址,出現一個這樣的錯誤:
Request header field Access-Token is not allowed by Access-Control-Allow-Headers in preflight response.
意思是說Access-Token 是不被允許的 ,那么如何進行設置呢,看下面的實例即可
$.ajax({
type:?type,
timeout:?10000,?//?超時時間?10?秒
headers:?{
'Access-Token':'123456'
},
url:?url,
data:?data,
success:?function(data)?{
},
error:?function(err)?{
},
complete:?function(XMLHttpRequest,?status)?{?//請求完成后最終執行參數
}
})
那么程序報錯了Request?header?field?Access-Token?is?not?allowed?by?Access-Control-Allow-Headers?in?preflight?response.
其中Access-Control-Allow-Headers 首部字段用于預檢請求的響應。
查閱了很多參考資料以及各位前輩踩坑記錄,得到如下總結:
報錯意思是請求頭中的Access-Token字段在Access-Control-Allow-Headers中沒有被設置為允許.
誰來設置?
一種是font-end自己設置,在ajax在中設置beforeSend$.ajax({
type:?type,
timeout:?10000,
beforeSend:?function(xhr)?{
xhr.setRequestHeader("Access-Toke");
},
headers:?{
'Access-Token':123456
},
url:?url,
data:?data,
success:?function(data)?{
},
error:?function(err)?{
},
complete:?function(XMLHttpRequest,?status)?{?//請求完成后最終執行參數
}
});
還有一種:
在服務器代碼中加入:服務器端就加這么一句話即可header("Access-Control-Allow-Headers:?Access-Token");
這樣的一句話,即可解決上述問題
headers:?{
'Access-Token':123456
},
這個header頭?這樣傳遞以后??在?PHP?$_SERVER?中的值是?$_SERVER['HTTP_ACCESS_TOKEN']?自動轉換成這樣了,切記
簡單跨域設置://header('Access-Control-Allow-Origin:?*');
header("Access-Control-Allow-Headers:?Access-Token");?//?Origin,?X-Requested-With,?Content-Type,?Accept
header('Access-Control-Allow-Methods:?GET,?POST,?PUT,DELETE');
這是一個簡單的jquery實例
html>
Document$.ajax({
'url':'http://www.qbjf.com/index.php/hellow/index2',
'method':'post',
'headers':{
/*'aaa':'123456',
'accept':"application/json;?charset=utf-8",*/
'Access-Token':'asdfasd'
},
'data':{
'username':'123',
'password':'456'
},
success:function(data){
console.log(data);
}
});
總結
以上是生活随笔為你收集整理的jquery ajax设置头部,jQuery Ajax 设置请求头的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ajax发送异步请求四个步骤,深入理解a
- 下一篇: 项目jetty服务器,maven项目配置