1. 程式人生 > >axios傳送兩次請求,options與get/post

axios傳送兩次請求,options與get/post

因為vue-resource不在更新,vue推薦使用axios,所以使用axios。
在頁面互動過程中,發現axios一定機率會發送兩次請求,一次是自己設定的請求方式,還有一次是options。
關於這個問題,在各個網站尋求原因,得出以下結論:
跨域資源共享標準新增了一組 HTTP 首部欄位,允許伺服器宣告哪些源站有許可權訪問哪些資源。另外,規範要求,對那些可能對伺服器資料產生副作用的 HTTP 請求方法(特別是 GET 以外的 HTTP 請求,或者搭配某些 MIME 型別的 POST 請求),瀏覽器必須首先使用 OPTIONS 方法發起一個預檢請求(preflight request),從而獲知服務端是否允許該跨域請求。伺服器確認允許之後,才發起實際的 HTTP 請求。在預檢請求的返回中,伺服器端也可以通知客戶端,是否需要攜帶身份憑證(包括 Cookies 和 HTTP 認證相關資料)。
也就是說,它會先使用options去測試,你這個介面是否能夠正常通訊,如果不能就不會發送真正的請求過來,如果測試通訊正常,則開始正常請求。
關於這個問題,需要在後臺進行設定,允許options請求,不然你的請求就會受到影響,後臺並作出判斷,如果請求方式為options,告訴它可以通訊,其他直接什麼都不做。
以下是PHP做設定內容
header(“Access-Control-Allow-Origin:*”);
header(“Access-Control-Allow-Headers:content-type”);
header(“Access-Control-Request-Method:GET,POST”);
if(strtoupper($_SERVER[‘REQUEST_METHOD’])== ‘OPTIONS’){
exit;
}

相關推薦

axios傳送請求optionsget/post

因為vue-resource不在更新,vue推薦使用axios,所以使用axios。 在頁面互動過程中,發現axios一定機率會發送兩次請求,一次是自己設定的請求方式,還有一次是options。 關於這個問題,在各個網站尋求原因,得出以下結論: 跨域

http傳送請求optionget

在專案中發現ajax中出現兩次請求,OPTIONS請求和GET請求,得到的資料出錯,所以想要去掉OPTIONS請求。 ajax請求如下: ajaxRequestGet: function (last

使用jquery進行事件繫結點選一傳送請求並且以後次數翻倍

出現的問題:使用jquery進行事件繫結,點選一次,執行兩次點選事件,並且在不重新整理頁面的時候,點選第三次的時候會執行四次,並且以後次數會進行翻倍。問題的原因:用jquery繫結一個click事件,jquery中並不是替換原因的function,而是接著新增。解決此問題的方

重定向是請求如何解決將在request中儲存的資料傳遞到另外一個網頁上呢?

1、若是request中儲存的是英文資訊,可以將該資訊放入url地址中當作引數?info="要傳遞的資訊"傳遞到另外一個網頁2、若是中文的話,會出現亂碼,需要解決亂碼問題,先解碼:URLEncoder.encode("info","utf-8");另外一個網頁解碼:Strin

【easyui】 datagrid連續傳送請求問題

XXXXXX.datagrid({ url: "${pageContext.request.contextPath}/xx/xx/xx, }); 用上述方式動態載入datagrid的資料時,通過net監聽,發現呼叫了兩遍

ajax呼叫傳送請求(一請求方法為option為正常請求

在專案了開發時遇見一個奇怪的現象,就是我在js裡面掉了一次ajax請求,在瀏覽器network那邊查詢到的卻是傳送了兩次請求,第一次的Request Method引數為OPTIONS,第二次的Request Method為我正常設定的POST。 在參考了:https://b

JS中如何防止AJAX命令重複載入(執行一自動向後臺傳送以上的請求

將程式碼部署在伺服器上後,在提交資料並將資料插入資料庫時,總是在提交後不多時,資料便變成了亂碼。後來發現原來是AJAX在搗鬼。 1、將如下程式碼放在將要傳送AJAX請求的方法前 <!--防止ajax重複載入--> <script> function pre

Axios傳送跨域請求預設不攜帶cookie的問題解決示例。

問題發現: 在使用vue開發學子商城專案時,發現登入頁面即使登入成功了,也無法將正確的登入狀態資訊傳遞迴主頁。 如圖:登陸成功之後,登入狀態碼為1,且通過cookie儲存下來,跳轉到首頁後通過axios請求獲取cookie中儲存的登入狀態碼。但是此時獲取到的狀態碼卻

輸入密碼第二第一不一致要求重新輸入的while迴圈

System.out.println("請輸入密碼:");// 輸入其他比如字串,且重新輸入   int mm1 = in.nextInt();   while (true) {    System.out.println("請再次確認密碼:");// 如果和第一次密碼輸入

為什麼axios請求介面會發起請求

之前在使用axios發現每次呼叫介面都會有兩個請求,第一個請求時option請求,而且看不到請求引數,當時也沒注意,只當做是做了一次預請求,判斷介面是否通暢,但是最近發現並不是那麼回事。 首先我們知道了額外的一次請求時option請求,那麼這個是幹嘛用的呢? 如果只是

傳送一條請求,頁面自動將這條請求傳送!

struts1+hibernate action: /**  * MyEclipse Struts Creation date: 05-27-2010  *  * XDoclet definition:  *  * @struts.action validate="t

(Ext / Js) ajax 跨域請求傳送解決方案

我的專案都是前後端分離,在用ajax請求的時候總是會發送兩次請求,一次OPTIONS(預檢請求),一次正常的POST(OR GET)。通過瀏覽器的開發者除錯工具(network)可以看到options請求不會帶上任何引數,返回null(其實返回值可以在後

頁面提交一請求action執行

問題描述:struts2框架,ajax請求下頁面提交一次請求,action中的方法會執行兩次原因:action中的方法以get開頭,所以執行兩次,原理不清楚,猜測與struts2的屬性驅動有關係(以set、get方式設定和取值)解決方法:把方法名改為以其他字串開頭就好了

chrome瀏覽器請求傳送的一種可能性

        小事一件,但願有助於諸君。        今天測試get請求的時候發現一個很奇怪的問題,那就是在chrome瀏覽器下請求會發送兩次。但是在其他瀏覽器下卻表現的很正常。這說明不是程式本身的問題,而是瀏覽器的問題。        於是,我一怒之下把所有的擴充套件程

HTTP的請求方法一共有9種OPTIONS, HEAD, GET, POST等等(消息頭有圖十分清楚)

ram () 哪些 ive 十分 enc set utf-8 cat 請求方法:指定了客戶端想對指定的資源/服務器作何種操作 下面我們介紹HTTP/1.1中可用的請求方法: 【GET:獲取資源】 GET方法用來請求已被URI識別的資源。指定的資源經服務器端解析後返

httpclient如何實現在一個連線中傳送請求

public class Sample { private static ResponseHandler<String> responseHandler = new ResponseHandler<String>() { @Override

nodejs 使用axios模組發起http請求並進行攔截各種請求資料

1、安裝axios npm install axios --save -g 2、先寫好攔截器、服務等 新建一個名為http_server.js的檔案 // http_server.js var axios = require("axios") // 建立axios例項s c

UVA11624 Fire!(bfs第一預處理)

題意翻譯 大火蔓延的迷宮 題目大意 你的任務是幫助Joe走出一個大火蔓延的迷宮。Joe每分鐘可以走到上下左右4個方向的相鄰格子之一,而所有著火的格子都會四周蔓延(即如果某個空格子與著火格子有公共邊,則下一分鐘這個空格子將著火)。迷宮中有一些障礙格,Joe和火都無法進入。當Joe走到一個迷宮的

轉行我為什麼要做程式設計師?

我本是學機械工程及其自動化出身的,本科時也跟著師兄、師姐煞有介事的參與了兩個機械類專案,其中一個專案預算也還挺嚇人的,好吧,即使我現在看也覺得不少。但是忙忙碌碌三年的時光過去了,專案結題了,自己在機械領域的能力真的沒什麼長進。 那會兒的我從一個訪談節目中的整容醫生那裡聽來一萬小時原理,覺得自己也

點選按鈕傳送請求解決方案

前幾天工作中遇到一個問題,在做使用餘額支付的時候,點選立即購買按鈕會出現一個彈層要求輸入支付密碼,輸完之後點選確認傳送請求。但是在測試的時候發現,在使用餘額支付的時候,第幾次購買就會發送幾次請求,類似於事件疊加。 一開始實現的思路大概就是,點選立即支付按鈕判斷