鍍金池/ 問答/HTML/ vue 跨域相關問題

vue 跨域相關問題

axios.interceptors.request.use(function (config) {
  store.commit('changeJsencrypt')
  console.log('請求攔截器');
  config.data = JSON.stringify(config.data)
  config.headers = {
    'checksign' : 'W6lAyK1V6j8eHfHXn3yem6eyTRslmkGv1AsIQD7d2mWqjqMn81ROK8YVdC31gnSyoo7OJBQIAZWKWxrbFzyiGZZH51Qs/ETuGb7QnxXGYExKWDDp1R6Xg2am7i13IhbKPqyJCGiuovtqrShjJQi8i0K9qH7lQpaFI/nXIvN48jU=',
    'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8'
  }
  return config;
}, function (error) {
  // Do something with request error
  return Promise.reject(error);
});

其中checksign是通過公鑰加密的,服務端經過測試沒問題,并且是允許這個參數的。

服務端:

圖片描述

查了一些資料和嘗試了解決仍然出現相同報錯

實際上它是成功請求了的

圖片描述

但是仍然報錯

圖片描述

Request header field checksign is not allowed by Access-Control-Allow-Headers in preflight response.

回答
編輯回答
淺時光

1 :vue 的話 你可以配置 本地代理 把本地的域名 端口指向后端所用的地址

2 最重要跨域的解決方案就是后臺把 支持所以請求頭 讓他改為* 還有返回一塊注意一下吧

2018年3月21日 16:45
編輯回答
伐木累

單從報錯信息來說,是checksign 這個字段錯了。但是你說這個字段后端驗證過是對的。那你到chrome的開發(fā)者工具里看一下,
clipboard.png

這里面有沒有checksign,理論上應該是正確的,因為你預請求都是成功的。

那么問題很可能在后端,你可以叫他打印以下相關的參數。

因為沒有遇到類似問題,以上回答僅供參考。

另外跨域相關:
簡單的跨域可以用proxyTable(特別適用于開發(fā)環(huán)境)。

2017年5月7日 20:33
編輯回答
神經質

要配置服務端允許請求頭里帶上checksign這個字段

2017年2月23日 07:53