Jquery AJAX kullanarak üçüncü taraf API'yi çağırdım. Konsolda aşağıdaki hatayı alıyorum:
Çapraz Orijinli Okuma Engelleme (CORB), MIME türü application/json olan MY URL çapraz orijinli yanıtı engelledi. Daha fazla ayrıntı için https://www.chromestatus.com/feature/5629709824032768 adresine bakın.
Ajax çağrısı için aşağıdaki kodu kullandım:
$.ajax({
type: 'GET',
url: My Url,
contentType: 'application/json',
dataType:'jsonp',
responseType:'application/json',
xhrFields: {
withCredentials: false
},
headers: {
'Access-Control-Allow-Credentials' : true,
'Access-Control-Allow-Origin':'*',
'Access-Control-Allow-Methods':'GET',
'Access-Control-Allow-Headers':'application/json',
},
success: function(data) {
console.log(data);
},
error: function(error) {
console.log("FAIL....=================");
}
});
Fiddler'da kontrol ettiğimde, verileri yanıt olarak aldım ancak Ajax başarı yönteminde alamadım.
Lütfen bana yardım edin.
Çoğu durumda, engellenen yanıt web sayfasının davranışını etkilememelidir ve CORB hata mesajı güvenli bir şekilde göz ardı edilebilir. Örneğin, engellenen yanıtın gövdesinin zaten boş olduğu veya yanıtın bunu işleyemeyecek bir bağlama teslim edileceği durumlarda (örneğin, 404 hata sayfası gibi bir HTML belgesinin bir etiketine teslim edilmesi) uyarı oluşabilir.
https://www.chromium.org/Home/chromium-security/corb-for-developers
Tarayıcımın önbelleğini temizlemek zorunda kaldım, bu bağlantıda okuyordum, eğer istek boş bir yanıt alırsa, bu uyarı hatasını alıyoruz. İsteğimde bazı CORS'lar alıyordum ve bu yüzden bu isteğin yanıtı boştu, Tek yapmam gereken tarayıcının önbelleğini temizlemekti ve CORS ortadan kalktı. CORS alıyordum çünkü chrome PORT numarasını önbelleğe kaydetmişti, Sunucu sadece localhost:3010
kabul ediyordu ve ben önbellek nedeniyle localhost:3002
yapıyordum.
Sunucu tarafında CORS eklemeniz gerekir:
Eğer nodeJS kullanıyorsanız:
Öncelikle aşağıdaki komutu kullanarak cors
yüklemeniz gerekir:
npm install cors --save
Şimdi aşağıdaki kodu uygulamanızın başlangıç dosyasına ekleyin ( app.js veya server.js
)
var express = require('express');
var app = express();
var cors = require('cors');
var bodyParser = require('body-parser');
//enables cors
app.use(cors({
'allowedHeaders': ['sessionId', 'Content-Type'],
'exposedHeaders': ['sessionId'],
'origin': '*',
'methods': 'GET,HEAD,PUT,PATCH,POST,DELETE',
'preflightContinue': false
}));
require('./router/index')(app);
Yanıt başlıkları genellikle sunucuda ayarlanır. Sunucu tarafında 'Access-Control-Allow-Headers'
ı 'Content-Type'
olarak ayarlayın