如何设置' Access-Control-Alow-Origin' Meteor JS应用程序中的标题?

时间:2017-05-17 02:24:43

标签: javascript node.js meteor cors

我在Meteor中创建了一个应用程序来运行谷歌学者的任何配置文件的刮刀,就在我打开路线时,终端显示下一个访问错误,如下所示:

  

XMLHttpRequest无法加载   https://scholar.google.cl/citations?user=n1qKMYwAAAAJ&hl=es。没有   '访问控制允许来源'标题出现在请求的上   资源。起源' http://localhost:3000'因此是不允许的   访问。

enter image description here

results.html

<template name="results">
  {{> sidebar}}
  {{> perfil}}
  <h3>Publicaciones</h3>
  <div class="radio"> <!--Inputs-->
    <div class="row">
      <div class="col-md-3 col-xs-6">
        <label><input type="radio" name="optradio">Campo</label>
        <label><input type="radio" name="optradio">Revista</label>
      </div>
      <div class="col-md-2 col-md-offset-7 col-xs-2 col-xs-offset-3">
        <button type="button" class="btn exportar">Exportar a CSV</button>
      </div>
    </div>
  </div>
  <center><h5>Número total de citaciones: 5457</h5></center>

  {{> tree}}

  {{> barras}}

  {{> colaboradores}}
  {{> script}}
  {{ scraperData }}
</template>

results.js

var request = require('request');
var cheerio = require('cheerio');

Template.results.onCreated(function() {

  id_investigador = Busquedas.findOne({});

  url = "https://scholar.google.cl/citations?user={{ id_investigador }}&hl=es";

  request(url, function(error, response, html){
    if(!error){
      var $ = cheerio.load(html);

      var id_usuario, autor, imagen_usuario, institucion, campos, titulos, citas_totales, citas_2012, indice_h_totales, indice_h_2012,
          indice_i10_totales, indice_i10_2012;

      var json = {  id_usuario: "",
                    autor : "",
                    imagen_usuario: "",
                    institucion : "",
                    campos : "",
                    titulos : "",
                    citas_totales : "",
                    citas_2012 : "",
                    indice_h_totales : "",
                    indice_h_2012 : "",
                    indice_i10_totales : "",
                    indice_i10_2012 : ""
                 };

      $('#gsc_prf_in').filter(function(){
        var data = $(this);
        autor = data.text().trim();

        json.autor = autor;
      })

      $('input[name="user"]').filter(function(){
        var data = $(this);
        id_usuario = data.val();

        json.id_usuario = id_usuario;
      })

      $('#gsc_prf_pup').filter(function(){
        var data = $(this);
        imagen_usuario = data.attr('src');

        json.imagen_usuario = imagen_usuario;
      })


      $('#gsc_prf_i').filter(function(){
        var data = $(this);
        campos = data.children().eq(3).children().eq(0).text().trim();

        json.campos = campos;
      })

      $('#gsc_prf_i').filter(function(){
        var data = $(this);
        institucion = data.children().eq(2).children().text().trim();

        //institucion = data.next().children().attr('href');

        json.institucion = institucion;
      })

      $('#gsc_a_b').filter(function(){
        var data = $(this);
        titulos = data.children().length;

        json.titulos = titulos;
      })

      /*$('.gsc_a_tr').filter(function(){
        var data = $(this);
        titulo = data.text();

        json.titulo = titulo;
      })*/

      //CITAS
      $('table[id="gsc_rsb_st"]').filter(function(){
        var data = $(this);
        citas_totales = data.children().eq(1).children().eq(1).text();

        json.citas_totales = citas_totales;
      })

      $('table[id="gsc_rsb_st"]').filter(function(){
        var data = $(this);
        citas_2012 = data.children().eq(1).children().eq(2).text();

        json.citas_2012 = citas_2012;
      })

      $('table[id="gsc_rsb_st"]').filter(function(){
        var data = $(this);
        indice_h_totales = data.children().eq(2).children().eq(1).text();

        json.indice_h_totales = indice_h_totales;
      })

      $('table[id="gsc_rsb_st"]').filter(function(){
        var data = $(this);
        indice_h_2012 = data.children().eq(2).children().eq(2).text();

        json.indice_h_2012 = indice_h_2012;
      })

      $('table[id="gsc_rsb_st"]').filter(function(){
        var data = $(this);
        indice_i10_totales = data.children().eq(3).children().eq(1).text();

        json.indice_i10_totales = indice_i10_totales;
      })

      $('table[id="gsc_rsb_st"]').filter(function(){
        var data = $(this);
        indice_i10_2012 = data.children().eq(3).children().eq(2).text();

        json.indice_i10_2012 = indice_i10_2012;
      })

      console.log(json)
      Session.set('scraperData', json);

    }
  })
});

Template.results.helpers({
  scraperData(){
    return Session.get('scraperData');
  }
});

这就是这个模板的路线:

Router.route('/results/:id_investigador', {
   name: 'results',
   waitOn: function() {
     return Meteor.subscribe('busquedas', this.params.id_investigador);
   },
   data: function() {
     return Busquedas.findOne(this.params.id_investigador);
   }
});

谢谢大家。此致

0 个答案:

没有答案