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

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

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CORS

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

2回答

2714閲覧

【CORS】クロスドメインによるエラーを解決したい

shimon11

総合スコア49

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CORS

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2020/08/07 07:37

前提・実現したいこと

【CORS】クロスドメインによるエラーを解決したい

WordPressを使って記事を配信しています
あるドメインでは配信出来るのですが別のドメインにするとクロスドメインエラーが出ます。
それを解決したい。

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

Access to XMLHttpRequest at 'https://dev.〇〇.com/wp-admin/admin-ajax.php' from origin 'http://localhost:8100' has been blocked by CORS policy: The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed.
core.js:6185 ERROR Error: Uncaught (in promise): HttpErrorResponse: {"headers":{"normalizedNames":{},"lazyUpdate":null,"headers":{}},"status":0,"statusText":"Unknown Error","url":"https://dev.〇〇.com/wp-admin/admin-ajax.php","ok":false,"name":"HttpErrorResponse","message":"Http failure response for https://dev.〇〇.com/wp-admin/admin-ajax.php: 0 Unknown Error","error":{"isTrusted":true}} at resolvePromise (zone-evergreen.js:798) at zone-evergreen.js:705 at rejected (tslib.es6.js:72) at ZoneDelegate.invoke (zone-evergreen.js:364) at Object.onInvoke (core.js:41275) at ZoneDelegate.invoke (zone-evergreen.js:363) at Zone.run (zone-evergreen.js:123) at zone-evergreen.js:857 at ZoneDelegate.invokeTask (zone-evergreen.js:399) at Object.onInvokeTask (core.js:41253) zone-evergreen.js:2845 POST https://dev.〇〇.com/wp-admin/admin-ajax.php net::ERR_FAILED scheduleTask @ zone-evergreen.js:2845 scheduleTask @ zone-evergreen.js:385 onScheduleTask @ zone-evergreen.js:272 scheduleTask @ zone-evergreen.js:378 scheduleTask @ zone-evergreen.js:210 scheduleMacroTask @ zone-evergreen.js:233 scheduleMacroTaskWithCurrentZone @ zone-evergreen.js:1134 (anonymous) @ zone-evergreen.js:2878 proto.<computed> @ zone-evergreen.js:1449 (anonymous) @ http.js:2601 _trySubscribe @ Observable.js:42 subscribe @ Observable.js:28 subscribeToResult @ subscribeToResult.js:9 _innerSub @ mergeMap.js:59 _tryNext @ mergeMap.js:53 _next @ mergeMap.js:36 next @ Subscriber.js:49 (anonymous) @ subscribeToArray.js:3 _trySubscribe @ Observable.js:42 subscribe @ Observable.js:28 call @ mergeMap.js:21 subscribe @ Observable.js:23 call @ filter.js:13 subscribe @ Observable.js:23 call @ map.js:16 subscribe @ Observable.js:23 (anonymous) @ Observable.js:91 ZoneAwarePromise @ zone-evergreen.js:960 toPromise @ Observable.js:89 post @ article.service.ts:91 async function (async) noAnimation @ index-e98418f5.js:89 runTransition @ index-e98418f5.js:47 async function (async) runTransition @ index-e98418f5.js:44 (anonymous) @ index-e98418f5.js:15 consumeTimeout @ index-26ec602c.js:2017 flush @ index-26ec602c.js:2041 invoke @ zone-evergreen.js:364 run @ zone-evergreen.js:123 (anonymous) @ zone-evergreen.js:857 invokeTask @ zone-evergreen.js:399 runTask @ zone-evergreen.js:167 drainMicroTaskQueue @ zone-evergreen.js:569 Promise.then (async) scheduleMicroTask @ zone-evergreen.js:552 scheduleTask @ zone-evergreen.js:388 onScheduleTask @ zone-evergreen.js:272 scheduleTask @ zone-evergreen.js:378 scheduleTask @ zone-evergreen.js:210 scheduleMicroTask @ zone-evergreen.js:230 scheduleResolveOrReject @ zone-evergreen.js:847 resolvePromise @ zone-evergreen.js:785 (anonymous) @ zone-evergreen.js:705 step @ tslib.es6.js:73 fulfilled @ tslib.es6.js:71 invoke @ zone-evergreen.js:364 onInvoke @ core.js:41275 invoke @ zone-evergreen.js:363 run @ zone-evergreen.js:123 (anonymous) @ zone-evergreen.js:857 invokeTask @ zone-evergreen.js:399 onInvokeTask @ core.js:41253 invokeTask @ zone-evergreen.js:398 runTask @ zone-evergreen.js:167 drainMicroTaskQueue @ zone-evergreen.js:569 Promise.then (async) scheduleMicroTask @ zone-evergreen.js:552 scheduleTask @ zone-evergreen.js:388 onScheduleTask @ zone-evergreen.js:272 scheduleTask @ zone-evergreen.js:378 scheduleTask @ zone-evergreen.js:210 scheduleMicroTask @ zone-evergreen.js:230 scheduleResolveOrReject @ zone-evergreen.js:847 resolvePromise @ zone-evergreen.js:785 (anonymous) @ zone-evergreen.js:705 webpackJsonpCallback @ bootstrap:25 (anonymous) @ index-index-module-ngfactory.js:1 Show 17 more frames

該当のソースコード

php

1header("Access-Control-Allow-Origin: *");

試したこと

function add_allow_header( $headers ) { global $wp; if (preg_match ('/wp-json/',$wp->request)) { $headers['Access-Control-Allow-Origin'] = '*'; $headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=utf8'; return $headers; } } add_filter( 'wp_headers', 'add_allow_header' );

を追加
WP-APIの「Access-Control-Allow-Origin」をいじった覚書

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

WordPress

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

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

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

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

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

guest

回答2

0

ベストアンサー

1つ考えられる可能性として、複数回Access-Control-Allow-Origin: *の指定をしてしまった、ということがあります。

Access-Control-Allow-Originの指定が確実に1回だけなのか確認してみましょう。

投稿2020/08/07 07:45

maisumakun

総合スコア145183

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

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

0

PHPをクローラーとして利用すればよいでしょう
cURLとか使うとよいでしょう

投稿2020/08/07 07:43

編集2020/08/07 07:44
yambejp

総合スコア114777

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

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

yambejp

2020/08/07 07:44

ただし他人の許可されていないサイトの情報を勝手に持ってくる行為なので 様々な問題を包含しています
maisumakun

2020/08/07 07:46

自分でPHPコードに手を入れたWordPressを、ローカルサーバのJavaScriptから呼んでいる状況かと思うのですが…
yambejp

2020/08/07 07:48 編集

あーなるほど。両方とも自分が管理している前提ですね
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問