クライアントbroswerでAjaxリクエストを使用してrssフィードにアクセスしようとしています。NodeJs要求されたリソースに 'Access-Control-Allow-Origin'ヘッダーがありません
$.ajax({
type: 'GET',
url: 'http://feeds.bbci.co.uk/news/business/rss.xml?edition=uk',
crossDomain: true,
dataType: 'xml',
success: function(responseData, textStatus, jqXHR) {
console.log(responseData)
},
error: function (responseData, textStatus, errorThrown) {
alert('failed.');
}
});
これは私に「Access-Control-Allow-Origin」エラーを与えています。
私はcorsパッケージをインストールしてサーバ上で有効にする必要がありますが、何か不足していますか?
server.jsファイル
var express = require('express');
var basicAuth = require('express-basic-auth')
var bodyParser = require('body-parser')
var cors = require('cors');
var app = express();
app.use(cors());
app.get('/', function (req, res) {
// res.send('Hello World');
res.sendFile(__dirname + '/views/index.html');
})
var routes = require('./routes');
app.use('/api', routes);
var server = app.listen(8081, function() {
var host = server.address().address
var port = server.address().port
console.log("App listening at http://%s:%s", host, port)
})
編集*フルエラー のXMLHttpRequestがhttp://feeds.bbci.co.uk/news/business/rss.xml?edition=ukをロードすることはできません。要求されたリソースに「Access-Control-Allow-Origin」ヘッダーが存在しません。 Origin 'http://localhost:8081'はアクセスできません。
待機中 - 適切なCORSヘッダーが見つからないhttp://feeds.bbci.co.ukを照会しています。 CORSヘッダーを含めるようにBBCサーバーを再構成する必要があります。 –
はい私はbbcウェブドメインであり、私のノードjsサーバではありません。エラーはローカルホストだと言いますが、なぜ私の終わりかもしれないと混乱していますか? 要求されたリソースに 'Access-Control-Allow-Origin'ヘッダーが存在しません。 Origin 'http:// localhost:8081' – user2202098
'origin'ヘッダはクライアントからBBCサーバに送られます。ただし、要求されたリソースはBBCサーバーであり、必要なCORSヘッダーで応答しません。 –