2016-06-17 5 views
0

にクロスドメインと一緒に動作しません... 私は、MySQLデータベースからレコードを読み込み、いくつかのPHPコードを作っ:MySQLのクエリは、私の問題は、次のようであるAJAX

$host = $_SESSION['host']; 
$username = $_SESSION['username']; 
$password = $_SESSION['password']; 
$db = $_SESSION['db']; 

$con = mysqli_connect($host,$username,$password,$db); 

$sql = "SELECT * FROM `table`"; 
$result = $con->query($sql); 
if ($result->num_rows > 0) { 
    while($row = $result->fetch_assoc()) { 
     ... 
    } 
} 

は私のhtml:

<button onclick="list">submit</button> 
<div id="output"></div> 

<script> 
var thisHost = "host.php"; 
function list() { 
    $.ajax({ 
     type: 'POST', 
     url: thisHost, 
     data: "list=true", 
     success: function(data) 
     { 
      $("#output").html(data); 
     }, 
     error: function (responseData, textStatus, errorThrown) 
     { 
      console.warn(responseData, textStatus, errorThrown); 
     } 
    }); 
} 
</script> 

すべてが正常に機能している限りです。しかし、今私は別のホストからPHPコードを呼び出したい。そのため、htmlファイルは別のホスト(localhost:81)にあり、phpファイルは古いホスト(localhost:80)に残ります。

今、私は、ajaxが他のホストで動作しないため、ドメインを越えるために何かが必要であることに気付きました。だから私は右の初めにPHPのコードにこれらの行を追加してなかったすべて:

header('Access-Control-Allow-Origin: *'); 
header('Access-Control-Allow-Methods: POST, GET, OPTIONS'); 
header('Access-Control-Max-Age: 1000'); 
header('Access-Control-Allow-Headers: Content-Type'); 

とAjaxの部分が再び動作することの後に

にJavaScriptでthisHostのvarの値を変更し、 PHPの応答。しかし、毎回私はこのような何かを行うことによって、クエリを作りたい:

$sql = "SELECT * FROM `table`"; 

は、私はこのエラーが発生します。

Fatal error: Uncaught Error: Call to a member function query() on null in C:\path\to\host.php:71 Stack trace: #0 {main} thrown in C:\path\to\host.php on line 71

私は、クエリが正しいことを確信しています。では、私は何を変える必要がありますか?

+2

接続の作成時にエラーがないかどうかを確認しましたが、それは「null」です。ここのJavaScriptコードは完全に無関係です。 – tadman

+0

私はそれを得た。問題の原因は、私が接続を維持するために使用したセッションでした。私は別のホストを持っている場合セッションが動作しないことを確認しませんでした:/ありがとう! – stackEr

+1

そのような '$ _SESSION'に資格情報を格納することは問題を求めています。うまくいけば良い方法があります。 – tadman

答えて

0

無効なハンドルでメソッドを呼び出すと、このようなエラーが発生します。接続要求が成功したことを常にチェックし、発生した可能性のあるエラーを処理します。

mysqliの例外を有効にすると、無視するのがずっと難しくなります。

関連する問題