2013-07-01 39 views
4

只是好奇嘗試使用phonegap與ajax從服務器查詢通知我的IP由於Access-Control-Allow-Origin不允許的一段時間後被阻止。該應用程序仍然運作,直到你被阻止。Phonegap文件傳輸和訪問控制 - 允許來源

找到一種解決方法是jsonp或允許在服務器上的訪問控制。但jsonp無法傳輸文件,所以第二個選項是文件上傳的選項。

規範允許在服務器的訪問控制:

<?php header('Access-Control-Allow-Origin: *'); ?> 

是否ft.upload的PhoneGap也需要這個?

另一個問題是有沒有辦法只允許這個特定的phonegap應用程序?

由於您可以將*更改爲特定的網址,但不知道如何爲phonegap做到這一點。

感謝

+1

你正面100%它阻止,因爲訪問控制允許來源嗎?或者你忘了更改phonegab config.xml文件來設置''或者你的域名是什麼? –

+0

當使用PhoneGap專用的FileTransfer api時,您不必處理來源 –

回答

1

,只允許特定的應用程序與你的服務器的工作,你所能做的就是通過與您的AJAX請求私鑰頭派,像「X-ACCESS-TOKEN」。

$.ajax({ 
    type: 'POST', 
    url: url, 
    headers: { 
     "X-ACCESS-TOKEN":"CLIENT_SECRET_KEY", 
    } 

那麼你的服務器上,你可以檢查頭部已經發送,如果它等於預期值。

另外我會建議使用.htaccess處理標題,而不是直接在後臺代碼中處理。

Header add Access-Control-Allow-Origin "*" 
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type, accept, X-ACCESS-TOKEN" 
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS" 

請注意,如果你按照我的建議,你必須將X-ACCESS-TOKEN添加到允許的標題列表。

+0

我會試試這個並回復您,看起來很有前途,謝謝。 –

+0

請您澄清您的意思:「您必須將X-ACCESS-TOKEN添加到允許的標題列表中。」 ? – pinturic