我的服务器上有一个名为'myProxy.php'的PHP文件,如下所示:
<?php
echo "text";
exit();
?>
当我尝试使用看起来像这样的AJAX调用从文件中获取该字符串时:
$.ajax({
url: "http://www.mydomain.com/myProxy.php",
type: "GET",
success: function(data) {
alert("Horray!");
}
});
脚本完全没有变化,我在Firebug控制台中看到一个红色的错误图标。有谁知道这可能导致什么?也许某个设置没有设置在哪里?
答案 0 :(得分:2)
您不能将脚本放在另一个域/子域/协议上,而不是当前脚本
答案 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);
});