-1

mysql からデータを取得しようとしています。簡単なテストをしたいだけです。

js コード

$(document).ready(function(){
    $("button").click(function(){
    $.post("http://anonymous.comze.com/default.php",
    function(data){
      alert(data);
    });
});
});
<?
    echo 'hello';
?>

コールバック関数が機能しないのはなぜですか?

4

1 に答える 1

0

あなたのサイトが anonymous.comze.com で実行されている場合を除き、問題はブラウザーが同一生成元ポリシーを適用していることにあります。具体的には、ページを提供したドメイン以外のドメインに対して AJAX 呼び出し (.post() が行っている) を行うことはできません。この問題には、JSONP で $.ajax 関数を使用する、AJAX 要求を使用しないなど、いくつかの回避策があります。ここにいくつかのアイデア:

同一生成元ポリシーを回避する方法

ただし、テストだけの場合は、Chrome を使用してセキュリティ設定を無効にするのがおそらく最も簡単な方法です (もちろん、実際のブラウジングを行う前に、このフラグを使用せずにブラウザーを再起動してください。このフラグは次のようにマークされていることにも注意してください)。サポートされていないため、Chrome の将来のバージョンから削除される可能性があります)。次のようなものを使用してコマンドラインから起動する必要があります(これはOSX端末用です):

open Google\ Chrome.app --args --disable-web-security

PC の場合は、コマンド ウィンドウを開いてプログラム ファイルの下の Chrome ディレクトリに移動し、次を使用できます。

chrome.exe --args --disable-web-security

Chrome ウィンドウが開くと警告が表示されますが、ブラウザ ウィンドウが開いている間は、Same Origin ポリシーは無効になります。

于 2013-10-25T20:37:08.130 に答える