ajax跨域往php程式post數據時,php程式總是執行兩次的解決方法

来源:http://www.cnblogs.com/chendaoyin/archive/2016/08/05/5743062.html
-Advertisement-
Play Games

php程式是部署在IIS7上面,ajax提交數據時,遇到了兩個問題,一個就是跨域,一個php程式總會被執行兩次。 第一個問題的解決方法,是百度出來的,添加下麵幾行代碼就可以了: header('Access-Control-Allow-Origin:*'); header("Access-Contr ...


php程式是部署在IIS7上面,ajax提交數據時,遇到了兩個問題,一個就是跨域,一個php程式總會被執行兩次。

第一個問題的解決方法,是百度出來的,添加下麵幾行代碼就可以了:

header('Access-Control-Allow-Origin:*');

header("Access-Control-Allow-Headers: x-requested-with,content-type");

header('Access-Control-Allow-Methods: OPTIONS,POST,GET');

其實,也可以直接在iis裡面設置,不用添加代碼,直接選擇站點,然後點右邊的http響應標頭,在裡面直接配好,就可以了。如圖:

第二個問題,一直沒有百度出結果,只好FQ用google,一下就看明白了,然後順著線索找,終於理清楚了。

在CORS .net 跨域解決方案里,是這樣介紹的(http://jingyan.baidu.com/article/03b2f78c190ad25ea237ae33.html)

同一個請求需要兩個相同請求地址的方法,一個標記為“POST”,另一個標記為“OPTIONS“,實體方法為標記”POST“的方法,這裡”OPTIONS“方法不需要做任何邏輯操並且返回值為void即可(其實OPTIONS請求為瀏覽器的校驗,髮帶參數的POST請求時瀏覽器會先發一個OPTIONS請求,檢驗request 頭信息和response頭信息一致後才真正發起POST請求)

抓包發現,確實如此,瀏覽器產生了兩個請求,OPTIONS service/service.php HTTP/1.1和POST /service/service.php HTTP/1.1

本想著像文中說的那樣,讓請求OPTIONS時,直接返回void,但是在看到配置php的時候,可以直接限制動作。試了一下,果然有用,現在ajax跨域,php程式只執行一次了。

iis里配置方法如下:找到php程式站點,也可以選擇伺服器設置,點右邊的處理程式映射,找到php,點編輯,在彈出對話框里,點請求限制,再選謂詞,點下麵謂詞之一,按照提示的輸入GET,POST,我是之前為了省事,直接是預設選項(全部謂詞),所以才遇到了這個問題。 如圖:


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 棧是Vector的一個子類,它實現了一個標準的後進先出的棧。 堆棧只定義了預設構造函數,用來創建一個空棧。 堆棧除了包括由Vector定義的所有方法,也定義了自己的一些方法。 棧常用的五個方法: boolean empty() :測試堆棧是否為空。 object peek():查看棧頂元素,但是不移 ...
  • 枚舉(Enumeration)介面雖然它本身不屬於數據結構,但它在其他數據結構的範疇里應用很廣。 枚舉(The Enumeration)介面定義了一種從數據結構中取回連續元素的方式。 例如,枚舉定義了一個叫nextElement 的方法,該方法用來得到一個包含多元素的數據結構的下一個元素。 枚舉定義 ...
  • 一、SpringMVC 使用 ModelAndView 來處理返回值問題。 1.ModelAndView 官方描述: Holder for both Model and View in the web MVC framework.Note that these are entirely distin ...
  • 1. VirtualBox的安裝 參考常規安裝方式即可。 VirtualBox 4.3.14 for Windows hosts:http://download.virtualbox.org/virtualbox/4.3.14/VirtualBox-4.3.14-95030-Win.exe 2. U ...
  • 在windows2008伺服器上安裝wampserver3.0.4集成環境,預設卻是無法遠程訪問,如果要遠程訪問需要修改apache的配置文件httpd.conf,修改如下: <Directory "D:/wamp64/www/"> # # Possible values for the Optio ...
  • 註釋規範 1、 類註釋 在每個類前面必須加上類註釋,註釋模板如下: 2、 屬性註釋 在每個屬性前面必須加上屬性註釋,註釋模板如下: 3、 方法註釋 在每個方法前面必須加上方法註釋,註釋模板如下: 4、 構造方法註釋 在每個構造方法前面必須加上註釋,註釋模板如下: 5、 方法內部註釋 在方法內部使用單 ...
  • 函數指針、回調函數、系統調用區別1.函數指針 2.回調函數 體現: 1.函數名作為參數傳遞給調用函數。 2.將調用者和被調函數分開,回調函數實現具體的功能,調用者無需關註實現的具體細節。3.系統調用系統調用 --> (0x80)軟中斷(系統調用表) --> 內核函數 --> 返回到系統調用層 rea ...
  • 用遞歸的方法實現無限極分類 通常我在寫項目的時候,在寫一些例如商城分類的時候會實現對應分類的上級分類,或者其它項目部門管理的上級部門的時候一般就會用到無限極分類來進行分類 第一步:首先在數據表設計的時候,如果要實現無限極分類,一般我會在數據表多添加一個欄位pid,下麵我通過一張新建的數據表來說明一下 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...