0

有人可以帮我吗?我有一个 html 文件,它通过 ajax 调用 php 脚本并显示 php 脚本生成的随机数。当两个文件都在同一个域中时它工作得很好,但是如果这两个文件位于不同的域中,这是我所需要的,什么都不会发生。有人可以帮我解决这个问题。

HTML 文件的代码是:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">// <![CDATA[
$(document).ready(function() {
$.ajaxSetup({ cache: false }); // This part addresses an IE bug.  without it, IE will only load the first number and will never refresh
setInterval(function() {
$('#divToRefresh').load('http://www.OTHERDOMAIN.com/random.php');
}, 5000); // the "5000" here refers to the time to refresh the div.  it is in milliseconds. 
});
// ]]></script>
 </head>
 <body>
<div id="divToRefresh">Loading users...</div>  
 </body>
</html>

如果线

$('#divToRefresh').load('http://www.OTHERDOMAIN.com/random.php');

改为:

$('#divToRefresh').load('random.php');

并放置在与html文件相同的文件夹中,一切都很好。

php文件的代码是:

<?php
$random1 = sprintf("%02f", rand(0,9212));
echo $random1;
?>

允许跨域 ajax 调用的修改后的代码是什么样的?我正在阅读有关 json 请求包装器的文档,但我不知道它的去向。任何帮助将不胜感激。

4

1 回答 1

0

您无法使用 ajax 跨域,这是不可能的,但您有以下选项:

1.对您自己的页面进行ajax并对该页面进行curl调用..

2.do $.getJSON('ur', variables, function(data){})。

几乎没有其他解决方案,但这两个基本上是您的最佳选择

以下是 getJson 的工作原理:

在您的服务器上,您应该有一个准备好接收 $_GET 的页面,类似于 API 或普通的 ajax 调用将使用 $_POST。

应该看起来像:

<?php
if(!empty($_GET['jsoncallback']) && !empty($_GET['variable'])){

    /* do whatever you like  with the variable you get as get
    *
    *
    *
    **/

    // echo the name of the callback function + the variables you want to receive back in JS
    echo $_GET['jsoncallback'].'('.json_encode($jason_echo).')';
}
?>

您将要调用的 JS 或页面应如下所示:

$.getJSON("SomePage/PagethatTakesTheGet.php?jsoncallback=?", {variable:15}, function(response){
    // do whatever you want with response.
});
于 2013-06-05T03:05:13.650 回答