2017-04-16 98 views
0

這是我的第一個SO問題,因爲我老實無法找出造成這個問題的原因,並且它讓我感到瘋狂,因爲如果我無法在第一天之後重新連接,我無法進行測試失敗的嘗試!XMLHTTPRequest因CORS導致IP禁止失敗

我有一個HTML我的本地計算機上運行(本地主機):

var xhr = new XMLHttpRequest(); 
xhr.open('POST', 'http://hostedDomain.com/myBackendScript.php', true); 
xhr.onload = function (e) { 
    console.log(this.responseText); 
}; 
xhr.send(); 

在託管服務器(我沒有獲得php.ini.htaccess.httpd.conf等),myBackendScript.php很簡單:

<?php 
    header("Access-Control-Allow-Origin: *"); //Note: I am not asking about how to configure Access-Control-Allow-Origin 
    echo "Server Response"; 
?> 

步驟來重現問題:

  1. 衝浪hostedDomain它返回指數
  2. 衝浪hostedDomain/myBackendScript.php並返回「服務器響應」
  3. 運行localhost的HTML,它失敗,出現錯誤CORS(「訪問控制允許來源不在瀏覽器控制檯中看到「」403 Forbidden「)[注意:我不是在詢問如何配置訪問控制 - 允許來源]
  4. Surf to hostedDomain不再有效(連接超時)
  5. 切換到另一個網絡(更改公共IP,使用同一臺計算機) - surf to hostedDomain再次運行
  6. 等待一個公司幾天的時間,我可以再次連接到hostedDomain。

注意:我不是在問關於CORS本身或關於如何配置Access-Control-Allow-Origin;我在詢問爲什麼在XMLHTTPRequest的第一次初始失敗嘗試以及停止此臨時「禁止」的潛在解決方案之後,我無法連接到hostedDomain。

我有一種感覺,它與服務器配置有關;但我不知道如何進一步...

+0

檢查您的瀏覽器開發工具網絡選項卡中的XHR請求 - 它實際上是否獲得該cors標頭? –

+0

嘗試使用這個更高級的php CORS設置http://stackoverflow.com/a/9866124/1175966有限的訪問問題,雖然很奇怪 – charlietfl

+0

也與主機檢查。可能是一些安全功能,將您鎖定出 – charlietfl

回答

0

我的hostedDomain使用CPanel並且爲該域啓用了ModSecurity。

顯然,ModSecurity會將失敗的XMLHTTPRequests檢測爲可疑活動並阻止IP。

我的主機提供商已經刪除了我阻止的公共IP,並建議我暫時禁用ModSecurity。已禁用ModSecurity允​​許我在不被阻塞的情況下創建多個失敗的XMLHTTP請求。

我注意到禁用ModSecurity 被阻止不會立即反轉該塊。這一步需要主機提供商的幫助。

相關問題