我有一个用node.js编写的应用程序。当我拨打Ajax电话时,除了Safari以外,所有浏览器的响应都没问题
这是我的路线:
picture.width(150)
这是我的Ajax电话:
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);
});
});
});
我可以在包括safari在内的所有浏览器中通过此链接获取结果
http://boschonurlu.herokuapp.com/getStocks?id=&_=1553354201898
但是当我尝试通过Ajax调用将其加载到页面中时,chrome和firefox可以工作,但是safari在控制台上给了我2条错误:
不允许请求资源
XMLHttpRequest由于访问控制检查而无法加载http://boschonurlu.herokuapp.com/getStocks?id=&_=1553354201898。
我应该怎么做才能使Safari上的Ajax调用正常工作?