簡體   English   中英

使用jsonp的跨域請求:從https到http

[英]Cross domain request using jsonp: from https to http

我有以下問題:我需要將網站( https://test.com )上的頁面中的一些數據發送到另一個頁面(例如http://anotherdomain.com )。 用戶只需在文本框中輸入數據,然后單擊一個按鈕即可。 此頁面上的腳本將處理click事件,並將GET請求(使用jQuery ajax方法)發送到http://anotherdomain.com

var enteredValue = $('#MytextBox').val();

function jsonpCallbackFunc(data) 
{
}

$.ajax({
    url: 'http://anotherdomain.com/qwerty/ajaxpage.php',
    data: { valuefield: enteredValue },
    dataType: 'jsonp',
    jsonp: 'callback',
    jsonpCallback: 'jsonpCallbackFunc',
    success: function (json) {
          // some code
    }
})

我使用FireFox收到了下一個錯誤-“阻止加載混合的活動內容http://anotherdomain.com/qwerty/ajaxpage.php ...”。 IE9和Chrome的情況相同。

問題:我們如何解決此問題? 我們可以只允許一個站點使用此腳本,還是可以使用另一段代碼(不是jQuery + jsonp)?

預先感謝您的幫助。

PS從“ http”站點開始,此代碼可以正常工作。

更新:我們使用另一個“ https” -URL( https://anotherdomain.com/qwerty/ajaxpage.php )解決了該問題。 我們之前曾嘗試使用它,但是它具有不受信任的證書。 現在它可以正常工作了。 感謝您的幫助和建議。

這是由於CORS發生的。 當您請求到其他域時,在進行Ajax調用的條件下,可能會發生預檢請求。 您正在使用jQuery,因此將在您的請求中設置自定義標頭。 所以用

訪問控制請求報頭

訪問控制允許來源

訪問控制允許的方法

請參考cors及其實現

還應該在服務器中允許此操作,請嘗試在處理請求的位置添加此內容

<?php header('Access-Control-Allow-Origin: *'); ?>

希望這會有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM