2013-05-02 46 views
-1
頁面

我試圖讓AJAX請求外部URL,並嘗試從URL獲取JSON數據上顯示。我得到401-授權錯誤,說它嘗試訪問網址時其不安全的內容。下面是我的代碼。請告知如何讓不安全的內容進行

function check() { 

    var ENV_URL = 'http://../BlueLight/api/BlueLights/getActiveBlueLight'; 
    $('#trBlueLight').hide(); 
    $.getJSON(ENV_URL+"&callback=?", function (data) { 
     if (data.expDate != null) { 
      $('#trBlueLight').show(); 
     } else { 
      $('#trBlueLight').hide(); 
     } 
    }); 
    } 
+0

請使用您的服務器請求內容。 – 2013-05-02 21:08:32

+0

要麼不安全protocoll啓動頁面(HTTP://而不使用https://),將您的服務器與Apache mod_proxy的代理,或者凱文·B分別發送到服務器的請求。 PHP或其他服務器端語言將能夠加載不安全的內容。但是這可能會導致高流量! – mercsen 2013-05-02 21:23:22

+0

你能讓我知道如何從我們的服務器向外部網址請求內容。任何示例代碼都會有幫助 – itdeveloper 2013-05-02 22:26:54

回答

0

所以是要長評論。 我假設你創建以下文件proxy_loader.php,並把你的網絡服務器目錄(normaly的httpdocs)。 它必須是https://domain.tdl/proxy_loader.php

訪問的文件應該是這樣的:

<?PHP 

// get the url provided by javascriot 
$url= $_GET['url']; 

// initialize CURL 
$ch = curl_init(); 

// additional headers like session id etc. 
$header = ''; 

// optional user & password 
$userpass = 'user:password'; 

//$parameters for the request 
// use parameter name as array key 
// use parameter value as array value 
$param = array(); 

// set url 
curl_setopt($ch, CURLOPT_URL, $url); 
//this enables the output into a variable 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
// set optional header 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
// set request method to GET 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); 
// optional http authenfication 
// remove the // to enable 
// curl_setopt($ch, CURLOPT_USERPWD, $userpass); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $param); 

// execute the request 
// and save the response in $ret 
$ret = curl_exec($ch); 

// close the connection 
curl_close($ch); 

echo $ret; 

// maybe you must use this: 
// echo json_encode($ret); 
?> 

現在,你可以通過你的服務器使用這樣的功能要求網址:

function check() { 

    var ENV_URL = 'http://../BlueLight/api/BlueLights/getActiveBlueLight'; 

    $('#trBlueLight').hide(); 

    $.getJSON('/proxy_loader.php?url=' + ENV_URL, function (data) { 
     if (data.expDate != null) { 
      $('#trBlueLight').show(); 
     } else { 
      $('#trBlueLight').hide(); 
     } 
    }); 
} 
0

如果您可以對兩個域代碼,XDM是很容易獲得,代碼示例here