使用AJAX获取数据时,PHP脚本返回错误/无

使用AJAX获取数据时,PHP脚本返回错误/无,php,javascript,jquery,Php,Javascript,Jquery,我的服务器上有一个名为“myProxy.PHP”的PHP文件,如下所示: <?php echo "text"; exit(); ?> 脚本完全没有任何变化,我在Firebug控制台中得到一个红色的错误图标。有人知道这可能是什么原因吗?可能某个地方没有设置设置? 不能将脚本放在当前脚本所在的域/子域/协议之外的其他域/子域/协议上 您不能将脚本放在当前脚本所在的域/子域/协议之外的其他域/子域/协议上我感觉您遇到了同源策略限制 对于普通的旧AJAX,脚本和资源应该存在于同一个域中

我的服务器上有一个名为“myProxy.PHP”的PHP文件,如下所示:

<?php
 echo "text";
 exit();
?>
脚本完全没有任何变化,我在Firebug控制台中得到一个红色的错误图标。有人知道这可能是什么原因吗?可能某个地方没有设置设置?

不能将脚本放在当前脚本所在的域/子域/协议之外的其他域/子域/协议上


您不能将脚本放在当前脚本所在的域/子域/协议之外的其他域/子域/协议上

我感觉您遇到了同源策略限制

对于普通的旧AJAX,脚本和资源应该存在于同一个域中。如果事实确实如此,您可以简单地使用

$.get("/myProxy.php", function(data) {
    alert("Hooray!");
}, "text");
如果您确实需要跨域支持,您可以更改PHP脚本以响应


我感觉你们遇到了同一原产地的限制

对于普通的旧AJAX,脚本和资源应该存在于同一个域中。如果事实确实如此,您可以简单地使用

$.get("/myProxy.php", function(data) {
    alert("Hooray!");
}, "text");
如果您确实需要跨域支持,您可以更改PHP脚本以响应


有错误信息吗?直接在浏览器中打开
myProxy.php
文件时,您会看到什么?为什么要使用完整的URI?非JSONP调用应该在同一个域上,因此URI应该是relativeNo,它只是带有红色“X”错误的空响应。如果我直接在浏览器中访问页面,它输出的文本就很好。你能详细解释一下“非JSONP调用应该在同一个域上,因此URI应该是相对的”是什么意思吗?或者也许可以将我链接到一个包含更多信息的源?谢谢。有错误消息吗?直接在浏览器中打开
myProxy.php
文件时,您会看到什么?为什么要使用完整的URI?非JSONP调用应该在同一个域上,因此URI应该是relativeNo,它只是带有红色“X”错误的空响应。如果我直接在浏览器中访问页面,它输出的文本就很好。你能详细解释一下“非JSONP调用应该在同一个域上,因此URI应该是相对的”是什么意思吗?或者也许可以将我链接到一个包含更多信息的源?谢谢。有趣的是,我不好意思说我不知道这件事。一个简单的解决方法是什么?对不起,我还不太清楚这意味着什么。所以,它不起作用的原因是因为我的javascript没有在myProxy.php文件所在的服务器上执行?但它什么时候从服务器上执行过呢?我以为这只是客户端的。除非我从根本上不明白什么……有趣的是,我不好意思说我没有意识到这一点。一个简单的解决方法是什么?对不起,我还不太清楚这意味着什么。所以,它不起作用的原因是因为我的javascript没有在myProxy.php文件所在的服务器上执行?但它什么时候从服务器上执行过呢?我以为这只是客户端的。除非我根本不明白什么…谢谢你,菲尔。这非常有帮助。谢谢你,菲尔。这非常有帮助。
<?php
// myProxy.php
$callback = isset($_GET['callback']) ? $_GET['callback'] : 'callback';
$data = array('text' => 'text');
header('Content-type: text/javascript');
printf('%s(%s)', $callback, json_encode($data));
$.getJSON("http://www.domain.com/myProxy.php?callback=?", function(data) {
    alert(data.text);
});