0
我有一個本地服務器:127.0.0.1:8000和一個網站:127.0.0.1:9000都與play2框架運行。訪問控制允許來源隨機發生
我在服務器上發出多個jquery ajax請求來獲取json數據並使用這些數據加載圖形。
問題是,在一個隨機的方式,我得到一個訪問控制允許來源錯誤。我讀了很多關於訪問控制允許來源,並修改了服務器的頭球迴應是這樣的:
Response.ok(Engine.executeQuery(identifier, queryParameters))
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods","GET, POST, OPTIONS")
.header("Access-Control-Allow-Credentials","true")
.header("Access-Control-Allow-Headers","Content-Type, *")
.build();
我的Ajax調用是由這種方式:
$.ajax({
url: obj.url,
dataType: 'json',
crossDomain:true,
success: function (data){
// load graph
}
我已經10 Ajax調用,都完全相同的方式,在相同的目標網址。
問題是,當我加載頁面(並執行ajax調用)時,一些ajax調用有效,有些不。如果我刷新頁面,則可以使用不同數量的調用。這看起來對我來說是隨機的。
我還注意到,如果我指定ajax調用async:false,錯誤永遠不會被觸發。當然,我需要這些調用是異步的(它本來就太簡單了)。
我看到很多關於這個錯誤的帖子,我以爲我知道它的一切。
任何幫助,歡迎。提前致謝。
打開開發者控制檯,在網絡選項卡中檢查所有ajax url的標題是否包含cors標頭。如果沒有,那麼你有服務器問題,而不是在客戶端。 –
我剛剛檢查過,我猜接受:\ */\ *表示沒問題吧?所以我遇到了服務器端的問題? – EoiFirst
你應該有「Access-Control-Allow-Origin」這個標題,「Accept」標題用於不同的目的。請檢查你的服務器端允許源標頭沒有爲所有請求設置,所以你得到的錯誤 –