質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

XHR

XHR(別名XMLHttpRequest)はJavaScriptなどのスクリプト言語を使ってサーバーとHTTP通信を行うAPIを指します。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

CORS

CORSとはCross-Origin Resource Sharingの頭文字をとったもので、ブラウザがオリジン以外のサーバからデータを取得するシステムのことです。

Q&A

0回答

3922閲覧

「CORSポリシーによってブロックされています:要求されたリソースに 'Access-Control-Allow-Origin'ヘッダーがありません」というエラーを解決したい

adfa

総合スコア13

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

XHR

XHR(別名XMLHttpRequest)はJavaScriptなどのスクリプト言語を使ってサーバーとHTTP通信を行うAPIを指します。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

CORS

CORSとはCross-Origin Resource Sharingの頭文字をとったもので、ブラウザがオリジン以外のサーバからデータを取得するシステムのことです。

0グッド

2クリップ

投稿2019/07/27 15:06

前提・実現したいこと

'https://xxxx'のホストで'https://yyyy'からデータを取得する際にクロスオリジンの制約に引っかかってしまいます。ちなみにサーバー側はexpressを使っています。
corsが原因だとおもうのですが、解決の仕方がわかりません。
どなたかお分かりになられる方いらっしゃいましたらご教示お願いします。

発生している問題・エラーメッセージ

GET https://yyyy 499 Access to XMLHttpRequest at 'https://yyyy' from origin 'https://xxxx 'has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

該当のソースコード

サーバー側('https://yyyy')

var express = require('express'), app = express(); var bodyParser = require('body-parser'); app.use(bodyParser.urlencoded({extended:true})); app.use(bodyParser.json()); var allowCrossDomain = function(req, res, next) { res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Headers', 'X-Requested-With'); next(); }; app.use(allowCrossDomain); app.get('/api/test',function(req,res){ res.json({ message:"Hello,world" }); }); app.listen(80); console.log("server starting....");

index.html('https://xxxx')

window.onload = function () { var xhr = new XMLHttpRequest(); xhr.addEventListener('loadend', function () { if (xhr.status === 200) { console.log(xhr.response); } else { console.error(xhr.status + ' ' + xhr.statusText); } }); xhr.open('GET', 'https://yyyy'); xhr.send(null); };

試したこと

サーバー側のcorsのコードが問題かと思いほかにも試してみたのですが、うまくいきませんでした。

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

補足情報(FW/ツールのバージョンなど)

amazon linux cloud9 を使用しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問