我正在尝试从mysql中检索数据。我只想做一个简单的测试。
js代码
$(document).ready(function(){
$("button").click(function(){
$.post("http://anonymous.comze.com/default.php",
function(data){
alert(data);
});
});
});
<?
echo 'hello';
?>
为什么回调函数不起作用?
答案 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窗口打开后,您会收到警告,但在浏览器窗口打开期间,同一来源政策将被停用。