2016-04-21 36 views
0

當我運行服務器上的和HTTP.post命令並使用標頭通過cookie標識自己時,我可以毫無問題地訪問(安全)網站,與所需的憑據。我正在使用HTTP包。Meteor:使用HTTP.get(CORS錯誤)從客戶端訪問網站

但是我想從客戶端本身發生同樣的事情。下面是在客戶端代碼:

HTTP.get('https://www.securewebsite.com/login1.php', { 
    timeout: 30000, 
    headers: { 
     "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", 
     "Upgrade-Insecure-Requests": "1", 
     // "DNT": "1", 
     "Accept-Language": "en-US,en;q=0.8,de;q=0.6" 
     // 'Accept-Charset' : 'utf-8', 
     // "Cookie": cookie 
    } 
}, function (err, res) { 
    if (err) { 
     // some error handling code 
    } else { 
     // doing something with res 
    } 
}); 

我不得不註釋掉Accept-CharsetDNTcookie頭當他們被標記爲不安全。例如對於DNT的錯誤消息:Refused to set unsafe header "DNT"(同爲其他頭)

然而即使這樣,我得到在瀏覽器檢查器(Chrome)所示OPTIONS和以下錯誤消息顯示出來:

XMLHttpRequest cannot load https://www.securewebsite.com/login1.php. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. The response had HTTP status code 501.

請注意比https://www.securewebsite.com/login1.php只是一個例子,而不是我打來的真實網站。你可以嘗試http://www.awest.de/作爲一個真實的例子。從錯誤消息中可以看出,我目前正在從本地調用它。

任何想法,我可以如何實現這一目標?我是否缺少一些特定的標題?我也嘗試了其他網址(包括我自己的網站空間),但是我收到了相同的錯誤消息,因此它與我嘗試從中獲取的網址沒有任何關係。這似乎更多的是瀏覽器問題,它想停止一些x腳本執行(如果我從我讀的內容中正確理解它)。

解釋爲什麼我想從瀏覽器訪問它:我不想違反服務器的策略,因此請求應該來自客戶端IP地址,而不是來自我的服務器IP地址。我正在使用兩個應用程序,一個只是託管客戶端代碼,另一個只託管服務器端代碼。

感謝您的提前幫助,感謝!

回答

0

看起來像cors問題。 嘗試PHP/js腳本里面的頭(後端/ CORS):

header('Access-Control-Allow-Origin: *'); 
header('Access-Control-Allow-Methods: GET, POST'); 
header("Access-Control-Allow-Headers: X-Requested-With"); 
+0

新增:選項= { 超時:timeoutMs, 頭:{ 「接受」:「text/html的,是application/xhtml + xml,application/xml; q = 0.9,image/webp,*/*; q = 0.8「, 」Upgrade-Insecure-Requests「:」1「, 」Accept-Language「:」en-US,zh ;訪問控制 - 允許 - 方法「:」GET,POST「, 」訪問控制 - 允許 - 來源「:」*「, 」q = 0.8,de; q = 0.6「, 」Access- Allow-Headers「:」X-Requested-With「 } };但我從預檢請求中獲得相同的錯誤消息 – a4xrbj1

+0

@ a4xrbj1如果清除HTTP.get('? –

+0

)中的任何頭文件,會發生什麼?如果我將每個頭文件放在名爲options的變量中,或者我保持不變該對象直接在HTTP.get中 - 問題不在於格式。 – a4xrbj1

相關問題