以下のように、okというクラスのDOMをクリックしたときに
自分に対してPOSTし、それに反応してほしいのですがスルーされてしまいます。
XHRのsendのあと、PHPでのPOSTかどうかのif文がスルーされてしまうのは
GETと判定されてしまっているようだからなのですがどうしてでしょうか?
XHRのonloadはOKとなります
何か思いっきり勘違いしてそうな気がするのですがよろしくおねがいします
// test.php
PHP
1<?php 2 try{ 3 if($_SERVER['REQUEST_METHOD'] == 'POST'){ 4 $requestDate = $_POST['get_data']; 5 echo $requestDate; 6 exit; 7 } 8 }catch(Exception $e){ 9 $ErrMessage = $e->getMessage(); 10 header("Location: /error.php?err=".$ErrMessage); 11 exit; 12 } 13?> 14 15<!DOCTYPE html> 16<html lang="ja"> 17<head> 18 <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script> 19</head> 20<body> 21 <button class="ok">ボタン</button> 22 <script> 23 $(function(){ 24 xhr = new XMLHttpRequest(); 25 xhr.onload = function (e) { 26 if (xhr.readyState === 4) { 27 if (xhr.status === 200) { 28 console.log('OK'); 29 } 30 } 31 }; 32 $(".ok").click(function(){ 33 let data = 'myData'; 34 post(xhr, data); 35 }); 36 }); 37 38 function post(xhr, target_data) { 39 xhr.open('POST', './test.php', true); 40 xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded;charset=UTF-8'); 41 var request = "get_data=" + target_data; 42 xhr.send(request); 43 } 44 </script> 45</body> 46</html>
回答3件
あなたの回答
tips
プレビュー