2016-11-10 52 views
-3

我正在通過https提供一個頁面,說:「example.com/page.php」跨源請求 - 我錯過什麼

在該頁面是一個jQuery AJAX調用:

$.ajax({ 
    url : "http://example.com/print/printReceipt.php", 
    dataType:"jsonp", 
    success:function(data) 
    { 
     alert("Success!"); 
    } 
}); 

「打印」 目錄中有一個.htaccess文件,其中包括:

Header always set Access-Control-Allow-Methods "POST, GET, PUT, OPTIONS, PATCH, DELETE" 
Header always set Access-Control-Allow-Origin * 

jQuery的總是返回一個錯誤:

Mixed Content: The page at '...' was loaded over HTTPS, but requested an insecure script '...?callback=jQuery300107312130929496792_1478818377085&_=1478818377088'. This request has been blocked; the content must be served over HTTPS.

我錯過了什麼?

+1

閱讀錯誤!你的服務是https,你不能使用http請求。 – Nosyara

回答

0

嘗試也把請求類型到你的Ajax調用 類型: 'GET'

+0

我在Ajax調用中添加了「method:'GET'」,但沒有改變。 – IanCabell

0

真的嗎?你有你的頁面,該頁面加載了HTTPS,並在你的腳本,你有這樣的:

url : "http://example.com/print/printReceipt.php"

你能發現這個錯誤嗎? (提示:你不能混合使用HTTPS和HTTP)。

只需使用//example.com/print/printReceipt.php - 無需前綴方法。

+0

請參閱從https頁面調用http頁面的事實,實際上是「跨源」的原因。所以是的,我可以將網址更改爲http,它可以工作,但這不是我要求的。我想將它稱爲跨源。 – IanCabell

+0

你不能。您不能通過此類呼叫混合安全和不安全的內容。因此,爲什麼我告訴你要麼在你的電話中使用https,要麼使用協議中立的請求,使用'//' – junkfoodjunkie

+0

Hm。我可以發誓,我讀了一個來自https頁面的http調用,可以通過CORS。謝謝你的幫助。 – IanCabell