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

时间:2011-10-21 21:02:50

标签: php javascript jquery

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

<?php
 echo "text";
 exit();
?>

当我尝试使用看起来像这样的AJAX调用从文件中获取该字符串时:

$.ajax({
    url: "http://www.mydomain.com/myProxy.php",
    type: "GET",
    success: function(data) {
     alert("Horray!");
  }
 });

脚本完全没有变化,我在Firebug控制台中看到一个红色的错误图标。有谁知道这可能导致什么?也许某个设置没有设置在哪里?

2 个答案:

答案 0 :(得分:2)

Same origin policy

您不能将脚本放在另一个域/子域/协议上,而不是当前脚本

答案 1 :(得分:2)

我感觉您遇到了同一来源政策限制。

对于普通的旧AJAX,您的脚本和资源应该存在于同一个域中。如果确实如此,您只需使用

即可
$.get("/myProxy.php", function(data) {
    alert("Hooray!");
}, "text");

如果您确实需要跨域支持,可以更改PHP脚本以响应JSONP requests

<?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));

...和JavaScript

$.getJSON("http://www.domain.com/myProxy.php?callback=?", function(data) {
    alert(data.text);
});