无法设置 Access-Control-Allow-Origin 请求 header

Can't set Access-Control-Allow-Origin request header

我向 food2fork api 发出了 AJAX 请求,但无法通过 否 'Access-Control-Allow-Origin' header 是存在 错误。我已经尝试在 beforeSend 中设置 header 并设置 crossDomain: true 但它没有用。

这是我的 AJAX 电话:

$.ajax({
      type: "GET",
      dataType: 'json',
      url: url,
      crossDomain: true, 
      beforeSend: function(xhr) {
          xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
      },
      success: function(data){
          console.log('in ajax json call');
          console.log(data);
          $('#info').html(JSON.stringify(data));
      }
    });

我尝试在节点 express.js 中设置请求 header 服务器端:

router.get('/test', cors(), function(req,res)
{
  res.set("Access-Control-Allow-Origin", "*"); //set header here
  res.render('exampleSearch', {title: 'FM | Test'});
});

Cors是一个npm包,设置了cross-reference权限,但没有帮我解决问题。

你能告诉我我做错了什么吗?

Client-side 请求在这种情况下不起作用。我必须做请求服务器端:

router.post('/test', function(req,res){

var callback = function(response){
 var str = '';

 //another chunk of data has been recieved, so append it to `str`
 response.on('data', function (chunk) {
   str += chunk;
 });

 //the whole response has been recieved
 response.on('end', function () {
   var recipes = JSON.parse(str);
   //do something with recipes
 });
}

var options = {
 host: "food2fork.com",
 path: "/api/search?key=[myKey]&q=" + ingredients
};

http.request(options,callback).end();

});

使用的代码来自 nodejitsu.com