欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于vue-resource報(bào)錯(cuò)450的解決方案

 更新時(shí)間:2017年07月24日 16:15:22   作者:stardew  
本篇文章主要介紹關(guān)于vue-resource報(bào)錯(cuò)450的解決方案,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

本文介紹了關(guān)于vue-resource報(bào)錯(cuò)450的解決方案,分享給大家,具體如下:

一、基本使用:

1.頁面引入

 import vueResource from 'vue-resource'
 Vue.use(vueResource)

2. 調(diào)取接口

Vue.http.post(url, {
 'data1': data1,
 'data2': 'data2'
}).then(response => {
 console.log('success', response)
}, response => {
 console.log('error', response)
})

二、報(bào)錯(cuò)450

定位錯(cuò)誤信息:請(qǐng)求header沒有完全一一對(duì)應(yīng)。Content-Type: application/x-www-form-urlencoded; charset=UTF-8應(yīng)為Content-Type: application/json; charset=UTF-8,檢查頁面代碼,發(fā)現(xiàn)已經(jīng)設(shè)置了

Vue.http.interceptors.push(function (request, next) {
 request.headers.set('Content-Type', 'application/json; charset=UTF-8')
 request.headers.set('Content-Type', 'application/json')
 next()
})

只是頁面沒有起作用而已,那究竟是什么原因?qū)е马撁嬖O(shè)置的Content-Type失效了呢?繼續(xù)追溯,發(fā)現(xiàn)跟這行代碼有關(guān)

 // Vue.http.options.crossOrigin = true 
 // Vue.http.options.emulateHTTP = true
 Vue.http.options.emulateJSON = true //(跟這行代碼有關(guān))

三、分析

下面分別來講一下這幾行代碼的用處,以及emulateJSON是怎么影響到Content-Type設(shè)置的。

1. Vue.http.options.crossOrigin

這個(gè)很明顯是設(shè)置跨域的,此處不多講。

2. Vue.http.options.emulateHTTP

參考地址:https://github.com/pagekit/vue-resource/blob/develop/src/http/interceptor/method.js

摘出源碼

/**
 * HTTP method override Interceptor.
 */

export default function (request, next) {

  if (request.emulateHTTP && /^(PUT|PATCH|DELETE)$/i.test(request.method)) {
    request.headers.set('X-HTTP-Method-Override', request.method);
    request.method = 'POST';
  }

  next();
}

大概的意思就是如果請(qǐng)求方式為PUT|PATCH|DELETE,服務(wù)器又沒法處理這幾類請(qǐng)求的時(shí)候,設(shè)置Vue.http.options.emulateHTTP = true的話可以將X-HTTP-Method-Override設(shè)置為PUT|PATCH|DELETE,然后使用普通的post進(jìn)行請(qǐng)求。

關(guān)于X-HTTP-Method-Override講一下,它的使用場景是:

在某些HTTP代理不支持類似PUT|PATCH|DELETE這些類型HTTP請(qǐng)求的情況下,可以通過另一種完全違背協(xié)議的HTTP方法來"代理"。這種協(xié)議就是,使客戶端發(fā)出HTTP POST請(qǐng)求并設(shè)置header里X-HTTP-Method-Override值為PUT|PATCH|DELETE。

3. Vue.http.options.emulateJSON

參考地址:https://github.com/pagekit/vue-resource/blob/develop/src/http/interceptor/form.js

摘出源碼

/**
 * Form data Interceptor.
 */

import Url from '../../url/index';
import { isObject, isFormData } from '../../util';

export default function (request, next) {

  if (isFormData(request.body)) {

    request.headers.delete('Content-Type');

  } else if (isObject(request.body) && request.emulateJSON) {

    request.body = Url.params(request.body);
    request.headers.set('Content-Type', 'application/x-www-form-urlencoded');
  }

  next();
}

從第17行可以看到,如果設(shè)置了emulateJSON的話會(huì)默認(rèn)加上這句

request.headers.set('Content-Type', 'application/x-www-form-urlencoded');

這就是為什么我們?cè)O(shè)置的Content-Type失效了。只要去掉Vue.http.options.emulateHTTP = true 或者直接置為false就可以了。

vue-resource(github)地址:https://github.com/pagekit/vue-resource

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue+ElementUi實(shí)現(xiàn)點(diǎn)擊表格中鏈接進(jìn)行頁面跳轉(zhuǎn)與路由詳解

    Vue+ElementUi實(shí)現(xiàn)點(diǎn)擊表格中鏈接進(jìn)行頁面跳轉(zhuǎn)與路由詳解

    在vue中進(jìn)行前端網(wǎng)頁開發(fā)時(shí),通常列表數(shù)據(jù)用el-table展示,下面這篇文章主要給大家介紹了關(guān)于Vue+ElementUi實(shí)現(xiàn)點(diǎn)擊表格中鏈接進(jìn)行頁面跳轉(zhuǎn)與路由的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • 15分鐘學(xué)會(huì)vue項(xiàng)目改造成SSR(小白教程)

    15分鐘學(xué)會(huì)vue項(xiàng)目改造成SSR(小白教程)

    這篇文章主要介紹了15分鐘學(xué)會(huì)vue項(xiàng)目改造成SSR(小白教程),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 解決vue組件props傳值對(duì)象獲取不到的問題

    解決vue組件props傳值對(duì)象獲取不到的問題

    這篇文章主要介紹了vue組件props傳值,對(duì)象獲取不到的問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • Vue3封裝組件完整實(shí)例(帶回調(diào)事件)

    Vue3封裝組件完整實(shí)例(帶回調(diào)事件)

    Vue.js已成為現(xiàn)代Web開發(fā)中不可或缺的技術(shù)之一,雖然Vue.js的一些基礎(chǔ)概念和語法比較易學(xué),但深入挖掘Vue.js的核心概念和功能需要更多的實(shí)踐,下面這篇文章主要給大家介紹了關(guān)于Vue3封裝組件(帶回調(diào)事件)的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • Vue中使用mixins混入方式

    Vue中使用mixins混入方式

    這篇文章主要介紹了Vue中使用mixins混入方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Vue SPA單頁應(yīng)用首屏優(yōu)化實(shí)踐

    Vue SPA單頁應(yīng)用首屏優(yōu)化實(shí)踐

    這篇文章主要介紹了Vue SPA單頁應(yīng)用首屏優(yōu)化實(shí)踐,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • vue實(shí)現(xiàn)登錄滑動(dòng)拼圖驗(yàn)證

    vue實(shí)現(xiàn)登錄滑動(dòng)拼圖驗(yàn)證

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)登錄滑動(dòng)拼圖驗(yàn)證,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • vue項(xiàng)目中頁面跳轉(zhuǎn)傳參的方法總結(jié)

    vue項(xiàng)目中頁面跳轉(zhuǎn)傳參的方法總結(jié)

    在Vue項(xiàng)目中,你可以使用路由(vue-router)來實(shí)現(xiàn)頁面跳轉(zhuǎn)并傳遞參數(shù),這篇文章主要為大家整理了一些常用的方法,感興趣的小伙伴可以學(xué)習(xí)一下
    2023-11-11
  • vue自定義指令和動(dòng)態(tài)路由實(shí)現(xiàn)權(quán)限控制

    vue自定義指令和動(dòng)態(tài)路由實(shí)現(xiàn)權(quán)限控制

    這篇文章主要介紹了vue自定義指令和動(dòng)態(tài)路由實(shí)現(xiàn)權(quán)限控制的方法,幫助大家更好的理解和學(xué)習(xí)vue,感興趣的朋友可以了解下
    2020-08-08
  • Vue實(shí)現(xiàn)點(diǎn)擊導(dǎo)航欄當(dāng)前標(biāo)簽后變色功能

    Vue實(shí)現(xiàn)點(diǎn)擊導(dǎo)航欄當(dāng)前標(biāo)簽后變色功能

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)點(diǎn)擊導(dǎo)航欄當(dāng)前標(biāo)簽后變色功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08

最新評(píng)論