-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() 正在执行该调用)。有许多解决此问题的方法,包括将 $.ajax 函数与 JSONP 一起使用,或不使用 AJAX 请求。这里有一些想法:

规避同源政策的方法

但是,如果您只是在测试,可能最简单的让它工作的方法是使用 Chrome 并禁用安全设置(当然,在进行任何实际浏览之前,请在没有此标志的情况下重新启动浏览器 - 另请注意,此标志被标记为不受支持,因此它可能会从 Chrome 的未来版本中消失)。您必须使用类似的东西从命令行启动它(这是针对 OSX 终端的):

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

对于 PC,您应该能够只打开一个命令窗口并导航到程序文件下的 Chrome 目录,然后使用:

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

一旦 Chrome 窗口打开,您将收到警告,但在浏览器窗口打开期间,同源策略将被禁用。

于 2013-10-25T20:37:08.130 回答