post中的Jquery回调函数无法执行

时间:2013-10-25 19:59:17

标签: php jquery

我正在尝试从mysql中检索数据。我只想做一个简单的测试。

js代码

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

为什么回调函数不起作用?

1 个答案:

答案 0 :(得分:0)

除非您的网站在anonymous.comze.com上运行,否则您的问题在于浏览器强制执行同源策略。具体来说,您不能对服务于您页面的域之外的域进行AJAX调用(.post()正在执行)。这个问题有很多解决方法,包括使用带有JSONP的$ .ajax函数,或者不使用AJAX请求。这里有一些想法:

Ways to circumvent the same-origin policy

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

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

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

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

Chrome窗口打开后,您会收到警告,但在浏览器窗口打开期间,同一来源政策将被停用。