【发布时间】:2013-02-01 13:28:23
【问题描述】:
我做了一个非常简单的 index.php 代码如下
<!DOCTYPE html>
<head>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/httpGet.js"></script>
<script type="text/javascript" src="js/jquery.mobile.js"></script>
</head>
<body>
<input id="string" type="text"/>
<input id="button" type= "button" value="Check" />
</body>
</html>
在这段 HTML 代码中,我们从用户那里得到一个号码并调用 httpgGet.js 文件。 httpGet.js 是:
$('#button').click(function() {
var string = $('#string').val();
$.post('http://...../isprime.php',{number: string},function(data){
alert(data);
}
}
我们将用户编号发送到 isprime.php 文件,在该文件中检查用户编号是否为质数。当我说 $.post('php/isprime.php',.....) 它工作得很好,但是当我想从另一台计算机调用 isprime.php 时,它就不起作用了。
我的意思是 $.post('192.168.1.1/test/isprime.php'....) 给了我一个未找到的错误。
文件存在,我可以使用浏览器直接调用来运行代码。当我在浏览器中输入 192.168.1.1/test/isprime.php 时,该文件是可访问的,但是从 js 文件中,它失败了。显然,我也可以 ping 192.168.1.1。即使使用 FireBug 也检查了代码,但并不彻底。
我搜索了很多,发现浏览器不允许跨域调用(我猜是出于安全目的),但我找不到解决这个问题的解决方案。 YQL 有一些东西(这是一种查询语言,我不知道我是否可以使用它)。我还看到了一些关于 cULR 的东西,但我不确定它是否也有效。
请帮助。我真的需要它。 非常感谢。
【问题讨论】:
-
首先使用完整 URL 时使用 http:// 方案,其次:您必须为您的网站启用 CORS
-
您好@Akam,感谢您的回复。我也使用http,但失败了。我在第二台计算机上使用 XAMPP Web 服务器来扮演服务器的角色。最终,此 php 代码将托管在运行网络服务器(如 PAW)的 Android 移动设备上。启用 CORS 有帮助吗?
标签: php javascript jquery cross-domain cross-domain-policy