ASP.Net CMS で PHP 関数を呼び出そうとしています。別のドメインで PHP ファイルをホストしていますが、次のエラーが発生します。
XMLHttpRequest は URL を読み込めません。オリジン URL は Access-Control-Allow-Origin で許可されていません。
header('Access-Control-Allow-Origin: *'); を追加しました。このサイトの他のスレッドのいくつかの提案に従ってPHPファイルに追加しましたが、違いはありませんでした。
これが私のコードです:
HTML
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$.post('http://10.254.2.54/adobe%20air/application/Pulse/data.php', {
'text': $("#preceda").text()
},
function(response){
$("#details").html(response);
});
});
</script>
</head>
<body>
<div id="preceda">
32384
</div>
<br />
<div id="details"></div>
</body>
</html>
PHP
<?php
header('Access-Control-Allow-Origin: *');
if ( isset($_POST['text']) ){
$q = addslashes(trim($_POST['text']));
}
// Connection script
$serverName = "***";
$uid = "***";
$pwd = "***";
$connectionInfo = array("UID"=>$uid, "PWD"=>$pwd, "Database"=>"***");
$conn = sqlsrv_connect($serverName, $connectionInfo);
if($conn === false)
{
echo "<error>Connect Failure</error>";
die(print_r(sqlsrv_errors(), true));
}
function checkQuery($theQuery, $theSQL)
{
if($theQuery === false)
{
echo "<error>Query Failure: ".$theSQL."</error>";
die(print_r(sqlsrv_errors(), true));
}
}
// Get the data
$tsql = "SELECT * FROM VG_LD_DS.dbo.VU_LearnAchievePreceda WHERE userID = '".$q."'";
$stmt = sqlsrv_query($conn, $tsql);
checkQuery($stmt, $tsql);
$i = 0;
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC))
{
if($i == 0)
{
$names = array($row);
}
else
{
array_push($names, $row);
}
$i = 1;
}
header('Access-Control-Allow-Origin: *');
foreach ($names as $name) {
echo $name['telstraID'];
}
?>
これは私にとってかなり新しいものなので、アドバイスや提案をいただければ幸いです。
ありがとうございました :)