2014-02-25 44 views
0

我最近開始使用Sencha Touch進行編碼,我想用一個發送請求到Node.js服務器的按鈕做一個簡單的應用程序。然後,我想顯示一條簡單的消息來查看服務器收到請求。發送請求從Sencha觸摸應用程序到Node.js服務器

我試過Ext.Ajax.request和Ext.data.JsonP.request但沒有成功......我搜索了很多,並嘗試了很多東西。

現在我的代碼的應用程序,側面看上去就像是:

launch: function() { 

    var button = Ext.create('Ext.Button', { 
     iconCls: 'action', 
     ui: 'action', 
     handler: function() { 
      Ext.Ajax.request({ 
       url: 'localhost:8080', 
       success: function (response) { 
        Ext.Msg.alert('Success'); 
       }, 

       failure: function (response) { 
        Ext.Msg.alert('Failure'); 
       } 
      }); 
     }, 
    }); 

    Ext.Viewport.add(Ext.create('Ext.Container', { 
     fullscreen: true, 
     layout: { 
      type: 'vbox', 
      pack: 'center', 
      align: 'center' 
     }, 
     items: [ 
      { 
       html: 'Send The Request' 
      }, 
      { 
       items: [button] 
      } 
     ] 
    })); 
}, 

和服務器端的是:

var http = require('http'); 
var url = require('url'); 

var server = http.createServer(function(request, response) { 
    var page = url.parse(request.url).pathname; 
    console.log(page); 
    response.writeHead(200); 
}); 

server.on('request', function(request, response) { 
    response.end('42'); 
}); 

server.listen(8080); 

我知道這些代碼是廢話,是放縱我非常新手JavaScript的。

在此先感謝

回答

0

本地主機:8080將無法正常工作在手機上部署的應用程序,因爲它會針對手機本身(但它的確定測試從瀏覽器)。 url也應該要求協議(http://)。

+0

我忘了指定用Wamp測試它(用於應用程序端)。在localhost/MyApp的應用程序和localhost的服務器:8080 – Gniar

0

您需要進行調試並確定請求失敗的時間點。

您可以嘗試console.log從節點查看是否收到請求。或者,在Chrome中打開應用程序,並使用檢查器的網絡選項卡查看請求是否已發送,如果有的話,響應是什麼(如果有的話)。

+0

我已經嘗試調試。該行「console.log(page);」顯示我在Google Chrome瀏覽器上使用localhost:8080連接時所請求的頁面,並看到響應'42'。但是,當我嘗試發送請求與我的應用程序不起作用時,node.js控制檯中不顯示任何內容。所以我認爲我目前的應用程序代碼不會發送任何請求。 – Gniar

+0

如果您更詳細地閱讀我的評論,您會看到我建議您使用檢查員的網絡選項卡查看請求是否已發送。調試比打印語句更多。 – shepsii

+0

是的,我查了一下,沒有要求。 – Gniar

相關問題