2017-06-12 92 views
1

我有一個api網關,我正在嘗試編程。當使用像Postman這樣的應用程序時請求工作,但是當我試圖通過XMLHTTPRequests形式的代碼連接時,我得到401 ... No 'Access-Control-Allow-Origin' header is present on the requested resource.,表示服務器不允許跨站點調用。關於REST API調用的混淆

也許我並不完全理解它是如何工作的,但似乎Postman這樣的應用程序在某種程度上繞過了這一點。而當我試圖從瀏覽器中的本地文件訪問api時,我遇到了這個問題。 我是否需要託管我打來的網頁以使其工作?或者我在這裏錯過了其他的東西?

+0

你試過提琴手確定在工作的任何差異和中午的工作通過?或者從郵遞員那裏尋找那個標題? – vipersassassin

+0

看看這裏https://enable-cors.org/index.html – Kostis

+0

@vipersassassin看起來代碼中沒有發送GET請求。這很奇怪。 – Jesper

回答

0

當瀏覽器發出XMLHTTPRequest時,它會檢查端點是否允許該請求的(即域)發送請求。該檢查通過預檢請求,即HTTP OPTIONS請求來完成,該請求應該提供包含具有發起請求的域的Access-Control-Allow-Origin標題的響應(或者允許所有域的*)。

由於這是瀏覽器的安全措施,主要基於瀏覽網頁的用戶可能不知道哪些請求被髮送到哪個端點的事實,所以郵差不需要應用它,因爲它的請求被明確地發送由用戶自己。