2012-11-14 51 views
0

我知道我是新來的ajax,但我一直在嘗試這個查詢,因爲大約2個小時的直線。非常簡單的ajax查詢不起作用

網站我試圖連接到在這個 http://cbsserver.zni.in/dnd/?phone=xxxxxxxxxx&apikey=xyz 我們發佈一個我有一個私人的API密鑰和一個手機號碼,以檢查其狀態。要測試它,請使用phone = '9999052908' & '9810241604'api_key = 'c115da3fcad11daa26dbbfd4f06387d8' 我使用的代碼如下

JQUERY

var dnd_api_key = c115da3fcad11daa26dbbfd4f06387d8 
    $('input#check_for_dnd').click(function() { 
       $.post("http://cbsserver.zni.in/dnd/", 
      { 
      phone:"9999052908", 
      apikey: dnd_api_key 
      }, 
     function(data,status){ 
     alert(status + "data:" + data); 
     }); 

HTML

<input type="button" id="check_for_dnd" name="check_for_dnd" value="CHECK DND STATUS" /> 

請告訴我我要去哪裏..

+1

api是否支持CORS? (事實上​​它失敗可能意味着它不支持CORS),否則這是不可能的,你必須從你的服務器發出請求。 –

+1

ajax調用只能返回到從中加載javascript的服務器。唯一的另一種方法是通過JSONP調用,如果api支持這樣的事情。 –

+0

「不工作」對您的問題描述很差。發生了什麼精確的錯誤? – cspray

回答

0

你不能 - 一般來說,沒有像JSONP和CORS的異常 - 對遠程URL進行ajax調用。

嘗試在請求頁面的服務器上使用「代理文件」(例如用PHP編寫)。然後對位於服務器上的這個代理文件進行ajax調用。

這看起來是這樣的(如果服務也蠻好用GET-請求,否則,您必須使用流或捲曲):

$result = file_get_contents("http://cbsserver.zni.in/dnd/?phone=xxxxxxxxxx&apikey=xyz"); 
echo $result; 

保存在服務器上的文件,並與像Ajax請求它你會:

$('input#check_for_dnd').click(function() { 
       $.post("my_proxy_file.php", 
     function(data,status){ 
     alert(status + "data:" + data); 
     }); 
+0

請詳細說多一點..然後我會嘗試搜索代理文件...從來沒有使用過他們.. – user1817626

+0

我找到http://www.abdulqabiz.com/blog/archives/2007/05/31/php-proxy-script-for-cross-domain-requests /。但沒有幫助..因爲腳本不能下載.. @DavidMüller – user1817626

+0

用一個例子更新我的文章。 「代理文件」只是一個處理請求的php腳本的術語。 –