簡體   English   中英

盡管存在請求的資源,但沒有“ Access-Control-Allow-Origin”標頭存在

[英]No 'Access-Control-Allow-Origin' header is present on the requested resource despite it is there

我有將其api公開為rest服務的java應用程序。 可通過以下URL訪問它: http:// localhost:8080另一方面,我有Angular獨立客戶端試圖調用這些服務。 該客戶端在不同的URL上運行: http:// localhost:8383

為了避免CORS問題,我已將其添加到其余服務的響應標頭中:

返回Response.ok(result.MediaType.APPLICATION_JSON).header(“ Access-Control-Allow-Origin”,“ http:// localhost:8080 ”).build();

現在無論我將其作為此標頭的值如何顯示:

客戶因缺少此標頭而無法工作:

XMLHttpRequest無法加載http:// localhost:8080 / PokerGame-REST 所請求的資源上沒有“ Access-Control-Allow-Origin”標頭。 因此,不允許訪問源' http:// localhost:8383 '。 (16:24:11:684 |錯誤,javascript)在app / index.html

這是什么問題,我錯過了什么嗎?

值得一提的是,高級REST客戶端按預期返回響應,並且響應標頭包含以下內容:Access-Control-Allow-Origin。 因此,看起來像純粹是我的Angular應用問題,但為什么呢?

另一個有趣的事情是客戶行為。 當我使用時:

$ http.get(' http:// localhost:8080 / PokerGame-REST / ').success(function(response){...}

它失敗並出現問題的錯誤,但是當我使用此命令時:

var restCall = $ resource(' http:// localhost:8080 / PokerGame-REST / ',{});

restCall.get(function(restResponse){$ scope.intro = restResponse;});

它失敗並顯示其他錯誤:

飛行前響應無效(重定向)

這是不正確的,因為響應純粹是JSON格式。

有任何想法嗎?

PJDef是正確的(第二條評論),他的建議幫助我解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM