Ajaxの勉強をしている者です。
HTML、JavaScript、PHPを使いinputタグに文字を入力し、送信ボタンを押したら入力値をAjaxの技術を用いてdivタグに反映させる、といったプログラムを書いてみました。
HTML
1<form> 2 <label for="name">名前: </label> 3 <input id="name" type="text" name="name" size="15"> 4 <input id="btn" type="button" name="submit" value="送信"> 5</form> 6<div id="result"></div> 7<script src="index.js"></script>
JavaScript
1'use strict'; 2 3document.addEventListener('DOMContentLoaded',function(){ 4 document.getElementById('btn').addEventListener('click',function(){ 5 let result = document.getElementById('result'); 6 let xhr = new XMLHttpRequest(); 7 xhr.onreadystatechange = function(){ 8 if(xhr.readyState === 4){ 9 if(xhr.status === 200){ 10 result.textContent = xhr.responseText; 11 } else { 12 result.textContent = 'サーバーエラーが発生しました。'; 13 } 14 } else { 15 result.textContent = '通信中...'; 16 } 17 }; 18 19 xhr.open('GET','index.php?name=' + 20 encodeURIComponent(document.getElementById('name').value),true); 21 xhr.send(null); 22 },false); 23},false);
PHP
1<?php 2sleep(3); 3print('こんにちは、'.$_REQUEST['name'].'さん!');
文字を入力し、送信ボタンを押すと以下のようなエラーコードがコンソールに出ます。
Access to XMLHttpRequest at 'ファイルのURL...???' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, chrome-untrusted, https.
色々調べてみましたが、まったくの初心者なのでわかりません。
私はmacOSで、Google ChromeでHTMLファイルを開いたところ、このようなエラーと遭遇しました。
どうやったら実行できるのか教えていただけますと幸いです。
回答2件
あなたの回答
tips
プレビュー