簡體   English   中英

XMLHttpRequest無法加載角度

[英]XMLHttpRequest cannot load angular

我是Angular的新手,正在嘗試構建一個簡單的應用程序來自學。 我不明白為什么我會收到本主題中提到的錯誤? “ XMLHttpRequest無法加載localhost:8081 / scrape。僅協議方案支持跨源請求:http,數據,chrome,chrome-extension,https,chrome-extension-resource。”

我導航到指定的端口(8081),盡管我通過express啟用了cors,但仍然收到CORS錯誤:

角工廠:

.factory('TradesDataFactory', function($http) {

        var getPlayerInfo = function() {
            return $http({
                method: 'GET',
                url: 'localhost:8081/scrape'
            }).then(function(resp) {
                return resp.data
            });
        };

快遞:刮

var express = require('express');
var fs = require('fs');
var request = require('request');
var cheerio = require('cheerio');
var cors = require('express-cors')
var app = express();

app.use(cors());
app.use(express.static('client'));
//*** how do I get this to scrape on server load?

app.get('/scrape', function(req, res) {

    //All the web scraping magic will happen here. do this once.
    url = "https://www.bing.com/search?q=Week+1+running%20backs+fantasy+predictions&FORM=MA12R5&OCID=MA12R5&wt.mc_id=MA12R5";

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

            var player, projectedPoints;
            var players = [];

            var playersAndPoints = $('.items').text();
            var playersAndPoints = JSON.stringify(playersAndPoints);
            var re = /Points\s\(PPR\)/gi;
            var formattedPlayers = playersAndPoints.replace(re, " ");
            formattedPlayers.replace("\\\"", "\"");
            var regex2 = /\.\d/g;
            var formattedPlayers = formattedPlayers.split(regex2);

            console.log(formattedPlayers);

            var names = formattedPlayers.map(function(player) {
                return player.split(':')[0]
            });
            var score = formattedPlayers.map(function(player) {
                return player.split(':')[1]
            });

            var object = {}

            for (var i = 0; i < names.length; i++) {
                object[names[i]] = score[i];
            }
        }

        var formattedPlayers = object;

        fs.writeFile('output.json', JSON.stringify(formattedPlayers, null, 4), function(err) {
            console.log("check your file directory!")
        })
        res.send("check your console!")
    })
})

app.listen('8081')

console.log('Magic happens on port 8081');

exports.app = app;

您遇到的錯誤是Angular檢查URL協議,例如httpdatafile

如果將url參數更改為: url: 'http://localhost:8081/scrape' ,它將起作用,使$ http方法看起來像:

return $http({
    method: 'GET',
    url: 'http://localhost:8081/scrape'
}).then(function(resp) {
    return resp.data
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM