ただのコピペ、メモとして。
詳細は元記事を。
{
var hostUrl= 'https://*****.php';
//var param1 = 1;
//var param2 = 10;
$.ajax({
url: hostUrl,
// username: "*****", // Basic認証用ユーザー名
// password: "*****", // Basic認証用パスワード
type:'POST',
dataType: 'json',
data : {name : "hoge"},
//data : {parameter1 : param1, parameter2 : param2 },
timeout:3000,
}).done(function(data) {
console.log('Successful communication with API!');
console.log('ReturnParameter:' + data['name']);
}).fail(function(XMLHttpRequest, textStatus, errorThrown) {
console.log('Ajax fail (communication error)');
})
}
<?php
/* スタブAPIが受け付けるPOSTパラメーター:name */
// header('Access-Control-Allow-Origin: *'); // どこからでもアクセス許可するならワイルドカード
header('Access-Control-Allow-Origin: https://*******/post.php');
header('Access-Control-Allow-Credentials: true'); // Basic認証やCookieのやり取りする際は必要(ワイルドカード使用すると使えない)
header('Access-Control-Allow-Headers: Content-Type');
header('Content-Type: application/json; charset=utf-8');
date_default_timezone_set('Asia/Tokyo');
if(isset($_POST['name']) === false || $_POST['name'] === '') {
$_POST['name'] = 'TEST_API';
}
$postName = htmlspecialchars($_POST['name'], ENT_QUOTES);
$array = [
'name' => $postName . '_RECEIVED', // API側で受け取ったよというマーク的なやつを付加
'date' => date("Y-m-d H:i:s"),
];
$json = json_encode($array);
/* logをAPI側のサーバーに出力する */
$file = new SplFileObject('log.txt', 'a');
$file->fwrite(
"【→API】RequestParameter:" . $postName . "'\n【←API】ReturnParameter :" . $json . "\n----------\n"
);
echo $json;
exit;