2013-10-22 194 views
1

我的問題是這樣的,但首先我想打個招呼。 :-)煎茶觸摸Ext.data.JsonP

我有一個Web應用程序和移動網絡應用程序。兩者都在我創建的不同虛擬主機上運行。

現在我想我的移動應用程序,從我的web應用程序獲取的信息(例如來賓簿條目,...)。

所以我在JS文件我的移動應用做:我的web應用程序的

Ext.data.JsonP.request({ 
     url : 'http://loc.webapp/requestHandler.php', 
     callbackKey : 'callback', 
     params : {"name" : "peter"}, 
     success : function(res) { 
      alert("OK"); 
     }, 
     failure : function() { 
      alert("FAIL"); 
     } 
    }); 

我的PHP文件requestHandler.php看起來是這樣的:

<?php 
echo json_encode("Hello"); 

在Firebug我可以看到,請求是好的(代碼200)。我看到你好,太:-)。但直到JS代碼運行到 大約需要30秒,成功/失敗案例。我需要更改我的apache服務器的設置嗎?

我會是一個答案很開心。

whitecloud

回答

0

你需要一個函數中附上您的結果,你callbackKey而得名,是這樣的:

echo "callback(" . json_encode("Hello") . ")"; 
+0

你確定嗎?如果你看看名爲「ajax」的sencha touch sdk包中的示例應用程序,你會看到,定義了一個成功鍵......並且我的成功函數也會被調用......但是我不知道它爲什麼被調用30秒... – user2908270

+0

你試過了嗎?響應應該看起來像'myCallbackKey({my:'json'})''。請參閱該文檔在這裏:http://docs.sencha.com/touch/2.3.0/#!/api/Ext.data.JsonP – kevhender

+0

是和它的工作。但在sencha文件夾中的示例應用程序中也有一個回調方法,它在ajax完成後立即執行。在我的代碼中,它等待大約30秒。 – user2908270