將不確定變為確定~開發人員應該明確知道跨域Post的問題

来源:http://www.cnblogs.com/shouce/archive/2016/03/30/5335669.html
-Advertisement-
Play Games

註意:這裡的跨域指不到同一功能變數名稱下,包括一級與二級功能變數名稱,這裡也認為不在同域下 從A網站把信息以Post的方式發送到B網站,這種過程叫做跨域POST,相類的,A網站把B網站的信息獲取回來,一般稱為跨域GET請求,而對於後者可以通過非同步方式實現,在jq里封裝了jsonp,用它來實現非同步跨域請求;而非同步跨域 ...


註意:這裡的跨域指不到同一功能變數名稱下,包括一級與二級功能變數名稱,這裡也認為不在同域下

從A網站把信息以Post的方式發送到B網站,這種過程叫做跨域POST,相類的,A網站把B網站的信息獲取回來,一般稱為跨域GET請求,而對於後者可以通過非同步方式實現,在jq里封裝了jsonp,用它來實現非同步跨域請求;而非同步跨域POST是不可以被實現的,下麵我們通過實例來說明。

一 非同步跨域

JS代碼用來實現跨域GET和跨域POST,代碼如下:(從www.post.com功能變數名稱下訪問二級域成file.post.com)

複製代碼
<script type="text/javascript">
    $.ajax({
        type: "GET",
        dataType: "jsonp", 
        url: "http://file.post.com/Home/GetInfo",
        success: function (data) {
            alert(data);
        }
    })

    $("#btnsubmit").click(function () {
        alert("操作...");
        $.ajax({
            type: "POST",
            url: "http://file.post.com/home/create2",
            data: { commentTitle: $("#CommentTitle").val(), commentInfo: $("#CommentInfo").val() },
            success: function (data) {
                alert(data);
            }
        })
    });
</script>
複製代碼

表單如下:

複製代碼
<fieldset>
    <legend>Product_Comment</legend>
    <div class="editor-label">
        @Html.LabelFor(model => model.ProductID)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.ProductID)
        @Html.ValidationMessageFor(model => model.ProductID)
    </div>
    <div class="editor-label">
        @Html.LabelFor(model => model.UserID)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.UserID)
        @Html.ValidationMessageFor(model => model.UserID)
    </div>
    <div class="editor-label">
        @Html.LabelFor(model => model.CommentTitle)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.CommentTitle)
        @Html.ValidationMessageFor(model => model.CommentTitle)
    </div>
    <div class="editor-label">
        @Html.LabelFor(model => model.CommentInfo)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.CommentInfo)
        @Html.ValidationMessageFor(model => model.CommentInfo)
    </div>
    <p>
        <input type="button" value="Create" id="btnsubmit" />
    </p>
</fieldset>
複製代碼

當載入頁面後,通過firebug可以看到,使用jsonp的GET請求,返回了正確的信息:

而請求非同步表單提交後,資料庫里並沒有記錄,就是說非同步不支持跨域POST

二 同步跨域

我們將表單按鈕類型改為submit,讓表單同步提交到其它域中

通過實驗表明,同步表單的POST操作是可以的,當然這是正常的,向淘寶的支付介面也是通過同步POST來實現的,呵呵!

資料庫中的信息如下:

恩,現在您應該對跨域POST有一個明確的認識了吧,對於同步表單POST,沒有任何問題,而非同步的POST,則受到了限制,無論是二級功能變數名稱還是其它功能變數名稱都不能進行POST請求的!

感謝您的閱讀!


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

-Advertisement-
Play Games
更多相關文章
  • 本博客不屬於技術貼,主要是記錄一些自己對不懂得地方的理解和學習的記錄,請帶著批判的眼光閱讀~ 值類型存儲在棧上,引用類型存儲在堆上。棧是由高到低存儲的,遵循先進後出的原則,是記憶體提前分配好的區域,記憶體的釋放不由人控制,用完後就會釋放記憶體。堆是動態分配的記憶體區域,是無序的,受人為控制釋放,但是達到一定 ...
  • MD5是一個安全的散列演算法,輸入兩個不同的明文不會得到相同的輸出值,根據輸出值,不能得到原始的明文,即其過程不可逆;所以要解密MD5沒有現成的演算法,只能用窮舉法,把可能出現的明文,用MD5演算法散列之後,把得到的散列值和原始的數據形成一個一對一的映射表,通過比在表中比破解密碼的MD5演算法散列值,通過匹 ...
  • 在做一個屬性入庫的功能,將Excel屬性數據導入到圖層要素當中,這裡Excel和SDE資料庫數據存在一個關聯欄位,通過關聯欄位值進行匹配屬性入庫。 在實際業務中,由於普查數據往往某些欄位值比較複雜,在寫入到圖層中時用戶可能做一些簡化,例如一個要素編號為0532BH001,可能錄入到圖層中只錄入BH0... ...
  • 在Windows10 UWP開發平臺上內置的XMAL佈局面板包括RelativePanel、StackPanel、Grid、VariableSizedWrapGrid 和 Canvas。在開發淘寶UWP應用時,遇到以下業務場景。 業務場景 場景一:淘寶商品提供的一些消費者保障服務 場景二:淘寶商品的 ...
  • 一個編譯的BUG,在原生的VS2015中沒有問題,但更新至VS2015 Update1之後就有了,大概是Update1用了新的編譯器,害得我好苦。經測試,VS2013 Update5中也存在這個問題,大概是用了相同的編譯器。 下麵我們來重現這個BUG,用最簡潔的代碼來重現這個BUG。 測試代碼 一個 ...
  • 刪除XML 使用方式http://localhost:8081/api/home?$format=jsonhttp://localhost:8081/api/home?$format=xml 參考資料:https://code.msdn.microsoft.com/Support-format-in ...
  • private void listbox1_MouseClick(object sender, MouseEventArgs e) { textbox1.Visible = false; textbox1.Text = lsbSearchItem.SelectedItem.ToString(); t ...
  • 1.本地變數 一看這個標題你可能會一愣,這是個什麼東東。看個小例子: static void main(){ int a=10; MyClass mc=new MyClass();} 呵呵,這裡的a與mc就是本地變數,它和欄位一樣,也保存數據。欄位通常保存和對象狀態有關的數據,而創建本地變數經常用於 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...