Glassdoor API не работает с $ http.get

0

У меня проблема с моим вызовом AngularJS для API Glassdoor. Он продолжает давать мне заголовок "Access-Control-Allow-Origin" присутствует на запрошенном ресурсе.

$http.get('https://api.glassdoor.com/api/api.htm?t.p=P_KEY&t.k=KEY&userip=0.0.0.0&useragent=&format=json&v=1&action=employers&q=ibm').then(function(resp) {
    console.log(resp.data);
    $scope.employers = resp.data;
}, function(error, resp) {
    console.log(error, resp);
});

Он работает, если я нажимаю ссылку конкретно, но угловой вызов нет.

Server.js для работы с CORS.

var express = require('express');
 var mysql = require('mysql');
 //var bodyParser = require('body-parser'); // pull information from HTML POST (express4)
 var app = express();
 var cors = require('cors');
var serveStatic = require('serve-static');
var data = '';


var connection = mysql.createConnection({
host: 'localhost',
port: '3306',
user: 'root',
password: '',
database: 'jobs'
});

//app.use(cors({origin: 'http://localhost:YOUR_PORT'}));
app.use(function(req, res, next) {
 res.header("Access-Control-Allow-Origin", "*");
 res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
 next();
 });

 app.use(serveStatic(require("path").join(__dirname, "/views"))); // Serves everything in the views directory
 // Example: url.com/css/style.css serves views/css/style.css

  app.get('/api/jobs', function(req, res, next) {
  connection.query('SELECT * FROM jobs ORDER BY company ASC', function(err, results) {
  if (err) {
      console.log('There was a problem reading from jobs database :' + err.stack);
      res.sendStatus(500).send('There was a problem reading from jobs database');
      return;
  }

  console.log('results:', results);
  res.send(results);
 });
});

app.post('/api/jobs_post', function(req, res, next){

});

var server = app.listen(8081, function() {console.log("Running")});

var gracefulShutdown = function() {
console.log('Shutting down');
server.close(function() {
    console.log('Closed out remaining connections');
});
connection.end(function(err) {
    if (err) {
        console.log('There was an error closing the connection to jobs database: ' + err.stack);
    } else {
        console.log('Connection terminated successfully!')
    }
});
}
process.on('SIGTERM', gracefulShutdown); // Server is killed
process.on('SIGINT', gracefulShutdown); // Ctrl-C is pressed in the terminal

Это мой интересный персональный проект: https://csjobsco-gchavez1011.c9users.io:8081/index.html

  • 0
    Похоже на проблему с CORS, developer.mozilla.org/en-US/docs/Web/HTTP/…
  • 0
    Будет ли это с моего сервера? Я уже «разобрался» с проблемой корс.

1 ответ

0

Вы вызываете Glassdoor API непосредственно из браузера, следовательно, "недопустимая" ошибка перекрестного происхождения.
Вам нужно будет выполнить вызов с сервера или через прокси (я думаю, для чего нужен сервер.js).

  • 0
    Вы правы в том, что должен быть серверный вызов. У меня возникла проблема, хотя разрешено было только по запросу.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню