vue-resource 請求報錯 emulateJSON emulateHTTP

vue-resource

yon
Paste_Image.png
**報錯信息**
 Request header field Content-Type is not allowed by Access-Control-Allow-Headers in preflight response.

在mian.js 全局定義

Vue.http.options.emulateHTTP = true;
Vue.http.options.emulateJSON = true;
Paste_Image.png

在使用的時候遇到一個小坑,這個$http請求和jquery的ajax還是有點區(qū)別,這里的post的data默認不是以form data的形式,而是request payload。解決起來也很簡單:在vue實例中添加headers字段:

http: { headers: {'Content-Type': 'application/x-www-form-urlencoded'} }

后來翻了下vue-resource
的源碼,發(fā)現(xiàn)有更加簡單的做法:

Vue.http.options.emulateJSON = true;

這里只簡單介紹下,詳細的文檔請大家移步這里吧。
vue.js目前還有眾多的插件,詳情看這里
https://segmentfault.com/a/1190000003968020#articleHeader10

emulateHTTP

emulateHTTP(布爾值)
默認值為:false,當值為true是,用HTTP的POST方式PUT,PATCH,DELETE等請求,并設置請求頭字段HTTP_Method_Override為原始請求方法。

如果Web服務器無法處理PUT, PATCH和DELETE這種REST風格的請求,你可以啟用enulateHTTP現(xiàn)象。啟用該選項后,請求會以普通的POST方法發(fā)出,并且HTTP頭信息的X-HTTP-Method-Override屬性會設置為實際的HTTP方法。

如果服務器無法處理PUT,PATCH和DELETE的請求。可以啟用enulateHTTP。
啟用之后,請求會以普通的POST方法發(fā)出,并且HTTP頭信息的X-HTTP-Method-Override屬性會設置為實例的HTTP方法

Vue.http.options.emulateHTTP = true;
emulateJSON

emulateJSON(布爾值)
默認值為:false,當值為true并且data為對象時,設置請求頭Content-Type的值為application/x-www-form-urlencoded

如果服務器無法處理編碼為application/json的請求,可以啟用emulateJSON選項。啟用之后,請求會以application/x-www-form-urlencoded為MIME type,就像普通的HTML表單一樣。

Vue.http.options.emulateJSON = true;
crossOrigin

crossOrigin(布爾值)
默認值為:null,表示是否跨域,如果沒有設置該屬性,vue-resource內部會判斷瀏覽器當前URL和請求URL是否跨域。

if ( request.crossOrgin === null ) {
    request.corssOrigin = corssOrigin(request);
}
if ( request.corssOrigin ) {
    if ( !xhrCors ) {
        request.client = xdrClient;
    }
    request.enumlateHTTP = false;
}

如果最終crossOrigin為true并且瀏覽器不支持CORS,即不支持XMLHttpRequest2時,則會使用XDomainRequest來請求。目前XDomainRequest 只有IE8,IE9 瀏覽器支持用來進行AJAX跨域。
https://segmentfault.com/a/1190000007087934

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,551評論 19 139
  • 由于公司前端人員短缺,這周我和濤哥就來填這個坑了,前端使用的js框架是Vue+Vue-resource+Vue-v...
    郭之源閱讀 50,454評論 9 57
  • 本文為轉載,原文:Vue學習筆記進階篇——vue-resource安裝及使用 簡介 vue-resource是Vu...
    ChainZhang閱讀 10,459評論 0 6
  • vue-resource的應用 最近在了解資源的相關加載方式,主要是基于http協(xié)議下的資源請求,之前由于用了vu...
    小a草閱讀 1,862評論 0 7
  • 今天得知一個不好的消息,外婆摔了一跤,身體狀況非常不好,吃不下也沒精神,恐怕會很難熬過這關。而外婆怎么會摔跤呢?照...
    maomizone閱讀 204評論 0 0

友情鏈接更多精彩內容