Ajax Can';t设置访问控制允许原始请求标头

Ajax Can';t设置访问控制允许原始请求标头,ajax,xmlhttprequest,Ajax,Xmlhttprequest,我向api发出AJAX请求,但无法通过无“Access Control Allow Origin”(访问控制允许源站)标头获取。出现错误。我曾尝试在发送前设置标题,并设置crossDomain:true,但没有成功 这是我的AJAX调用: $.ajax({ type: "GET", dataType: 'json', url: url, crossDomain: true, beforeSend: function(xhr) {

我向api发出AJAX请求,但无法通过无“Access Control Allow Origin”(访问控制允许源站)标头获取。出现错误。我曾尝试在发送前设置
标题,并设置
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));
      }
    });
我尝试在node express.js中设置请求头服务器端,方法是:

router.get('/test', cors(), function(req,res)
{
  res.set("Access-Control-Allow-Origin", "*"); //set header here
  res.render('exampleSearch', {title: 'FM | Test'});
});
是一个npm包,它设置了交叉引用权限,但没有帮助我解决问题


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

客户端请求在这种情况下不起作用。我必须在服务器端执行请求:

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();

});

使用了来自

的代码,这是一个响应标题。在响应中发送时会发生什么?@SLaks我不确定在响应中发送时会发生什么,我是服务器端编码的乞丐:)我猜它只是分配了一个参数,而这个参数没有任何作用。我删除了它,同样的错误也发生了,你能帮忙吗?