2013-02-16 70 views
0

我做了一个非常简单的index.php代码如下跨域URL jQuery中

<!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的内容,但我不确定这是否也适用。

请帮忙。我真的需要它。 非常感谢你。

+1

首先使用完整的URL使用http://方案,第二:你必须为你的站点启用[CORS](http://www.w3.org/TR/cors/) – 2013-02-16 19:00:58

+0

Hi @Akam并且谢谢回复。我也使用了http,它失败了。我在第二台计算机上使用XAMPP Web服务器来扮演服务器的角色。最终,这个PHP代码将被托管在一个正在播放PAW等Web服务器的Android移动设备上。是否启用CORS帮助? – Espanta 2013-02-17 03:06:42

回答

0

在我看来,最明显的解决方案是在服务器端使用cURL库(如你所说,是的,它会工作)没有跨域请求限制的请求。当然,你需要在你的服务器上安装cURL库。 PHP cURL manual应该有足够的信息让你开始。

+0

谢谢@Default,我的问题是如何访问服务器并在那里运行代码。由于cURL是一个PhP库,PhP不能在移动端执行。如果我能访问服务器运行PhP m问题就解决了。我是初学者,所以我可能不知道基础知识。请毫不犹豫地告诉我所有的基本知识。 – Espanta 2013-02-17 03:27:25

+0

对,如果您向服务器上的某个端点发出AJAX请求(就像您已经通过jQuery#post进行操作一样),则可以使用cURL函数发出跨域请求,然后将所需信息返回给客户端。您将要查看的函数有curl_init(),curl_setopt(),curl_exec()和curl_close()(可能还有curl_getinfo())。希望有帮助。 – Default 2013-02-17 21:31:19