У меня есть приложение, написанное в node.js. Когда я делаю Ajax-вызов, ответы все в порядке во всех браузерах, кроме Safari
вот мой маршрут:
router.get('/getStocks', mid.requiresLogin, function(req, res, next) {
/*
None of these worked!!
res.header("Access-Control-Allow-Origin", "*");
res.header("Content-Type", "application/json");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
*/
registeredUser.findById(req.session.userId)
.exec(function (error, user){
if(error){
return next(error);
}
var search = req.query.id;
var regexValue = '^' + search;
var queryOptions = {
productCode: {
'$regex' : regexValue,
'$options' : 'i'
}
};
stockListModel.find(queryOptions, function(err, data) {
if(err){
console.log(err);
}
var stringify = JSON.stringify(data);
console.log(data);
return res.json(data);
});
});
});
и вот мой Ajax-вызов:
$.ajax({
url: 'http://boschonurlu.herokuapp.com/getStocks',
type: 'get',
data: jQuery.param({id: search}),
dataType: 'json',
contentType:"application/json; charset=utf-8",
headers: {
"cache-control" : "no-cache",
//also this(below) didn't work
"Access-Control-Allow-Origin" : "*"
}
})
Я могу получить результаты по этой ссылке во всех браузерах, включая Safari
http://boschonurlu.herokuapp.com/getStocks?id=&_=1553354201898
но когда я пытаюсь загрузить его на странице с помощью вызова Ajax, Chrome и Firefox работают, но Safari выдает мне 2 ошибки на консоли:
Запрещено запрашивать ресурс
XMLHttpRequest не может загрузить http://boschonurlu.herokuapp.com/getStocks?id=&_=1553354201898 из-за проверок контроля доступа.
Что я должен сделать, чтобы Ajax Call работал в Safari?