因?yàn)関ue-resource不在更新豌鸡,vue推薦使用axios嘿般,所以使用axios段标。?
在頁(yè)面交互過程中,發(fā)現(xiàn)axios一定幾率會(huì)發(fā)送兩次請(qǐng)求博个,一次是自己設(shè)置的請(qǐng)求方式怀樟,還有一次是options。?
關(guān)于這個(gè)問題盆佣,在各個(gè)網(wǎng)站尋求原因往堡,得出以下結(jié)論:?
跨域資源共享標(biāo)準(zhǔn)新增了一組 HTTP 首部字段,允許服務(wù)器聲明哪些源站有權(quán)限訪問哪些資源共耍。另外虑灰,規(guī)范要求,對(duì)那些可能對(duì)服務(wù)器數(shù)據(jù)產(chǎn)生副作用的 HTTP 請(qǐng)求方法(特別是 GET 以外的 HTTP 請(qǐng)求痹兜,或者搭配某些 MIME 類型的 POST 請(qǐng)求)穆咐,瀏覽器必須首先使用 OPTIONS 方法發(fā)起一個(gè)預(yù)檢請(qǐng)求(preflight request),從而獲知服務(wù)端是否允許該跨域請(qǐng)求字旭。服務(wù)器確認(rèn)允許之后对湃,才發(fā)起實(shí)際的 HTTP 請(qǐng)求。在預(yù)檢請(qǐng)求的返回中遗淳,服務(wù)器端也可以通知客戶端拍柒,是否需要攜帶身份憑證(包括 Cookies 和 HTTP 認(rèn)證相關(guān)數(shù)據(jù))。?
也就是說屈暗,它會(huì)先使用options去測(cè)試拆讯,你這個(gè)接口是否能夠正常通訊,如果不能就不會(huì)發(fā)送真正的請(qǐng)求過來养叛,如果測(cè)試通訊正常种呐,則開始正常請(qǐng)求。?
關(guān)于這個(gè)問題弃甥,需要在后臺(tái)進(jìn)行設(shè)置爽室,允許options請(qǐng)求,不然你的請(qǐng)求就會(huì)受到影響潘飘,后臺(tái)并作出判斷肮之,如果請(qǐng)求方式為options,告訴它可以通訊卜录,其他直接什么都不做戈擒。