私は自分のウェブサイトにAngularJSを使用しています。私はPHPを使用して私のmysqlデータベースにGET要求をすることを望んでいません。私は簡単なPHPスクリプトを作成しましたAngularjs - 自分のサーバーからPHPスクリプトを要求する返信403
<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
$conn = new mysqli($server, $username, $password, $database);
mysqli_set_charset($conn, "utf8");
$result = $conn->query("SELECT name FROM table");
$outp = "";
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
if ($outp != "") {
$outp .= ",";
}
$outp .= '{"name":"' . $rs["name"] . '",';
}
$outp ='{"records":['.$outp.']}';
$conn->close();
echo($outp);
?>
私はこのPHPファイルをangularJs http.getでリクエストすると、応答は403禁止されています。私のAngularJSコード:
getScript: function() {
var req = {
method: 'GET',
url: '/app/scripts/script.php',
headers: {
'Content-Type': 'application/json'
}
};
return $http(req);
}
私は同じサーバーから403を得ることがわかります。私はここで何が欠けていますか?
残念ながら、私の問題は解決しませんでした。 – MatMat
おそらく私は間違っているかもしれませんが、おそらくあなたが得ている問題は、サーバーコールをしようとしているときに、ブラウザがプリフライトOPTIONS要求を拒否しているためです(GETがprflightを行うかどうかはわかりません)。この問題は、サーバーが拒否している要求/応答ヘッダーで発生する可能性があります。この情報が役に立ちそうですか –
私自身の質問に答えました。これは、私のhtaccessファイルのOptions FollowSymLinksによるものです – MatMat