2017-04-24 4 views
0

私は自分のウェブサイトに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を得ることがわかります。私はここで何が欠けていますか?

答えて

0

申し訳ありません。私は.htaccessファイルのこの行のために403を得ました:

Options FollowSymLinks 
0
getScript: function() { 
    var req = { 
     method: 'GET', 
     url: '/app/scripts/script.php', 
    }; 
    return $http(req); 
} 

リクエストヘッダーをカスタマイズしないようにしてください。これは、403禁止された問題を解決する必要があります。

+0

残念ながら、私の問題は解決しませんでした。 – MatMat

+0

おそらく私は間違っているかもしれませんが、おそらくあなたが得ている問題は、サーバーコールをしようとしているときに、ブラウザがプリフライトOPTIONS要求を拒否しているためです(GETがprflightを行うかどうかはわかりません)。この問題は、サーバーが拒否している要求/応答ヘッダーで発生する可能性があります。この情報が役に立ちそうですか –

+1

私自身の質問に答えました。これは、私のhtaccessファイルのOptions FollowSymLinksによるものです – MatMat

関連する問題