jquery的ajax is not allowed Access-Control-Allow-Headers in preflight response 自定義headers

看之前,這個問題只是簡單的傳遞數據,然後再頭部添加自定義字段.(沒有jsonp啊,跨域啊等等)

源代碼:

var lang= 'zh-cn'

$.ajax({
     url:'就是一般的url',
    type:'get',
    dataType : 'json',
    beforeSend: function(request) {
         request.setRequestHeader("lang", lang);
    },
    success:function(res){
console.log(res.data)
    },
    fail:function(err){
console.log(err)
alert('服務器異常,請刷新重試!')
    }

})

解決辦法:

後臺加入跨域:

response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "OPTIONS, GET, POST, PUT, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");

response.setHeader("Access-Control-Allow-Headers", "X-Requested-With, Content-Type, Accept, X-Token, lang");

response.setHeader("Access-Control-Expose-Headers", "*");

分析:紅色圈住重點要考試。前端在頭部加入自定義的字段lang時,後天要允許這個頭部字段,經實際驗證,可靠無疑。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章