2013-02-16 76 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