2013-07-09 93 views
0

Ext.Ajax.Request似乎不适用于我的桌面Web浏览器。它在设备和xcode模拟器上工作得很好,但在桌面Web浏览器上,它调用失败方法。下面是代码:Ext.Ajax.Request在浏览器中不起作用

// send ajax request 
     Ext.Ajax.request({ 
      url: 'http://testapp.cloudapp.net/index.php/api/accounts/login/', 
      method: 'POST', 
      params: { 
       username: Ext.getCmp('username').getValue(), 
       password: Ext.getCmp('password').getValue() 
      }, 
      dataType: 'json', 
      success : function(response, request) { 
       if(response.responseText == true) { 
        Ext.Msg.alert('validated'); 

        // animate to wall view 
        Ext.Viewport.animateActiveItem(targetView, { type : 'fade' }); 

        //destroy Login and Register Views 
        var vwRegister = Ext.ComponentQuery.query('register')[0], 
         vwLogin = Ext.ComponentQuery.query('login')[0]; 

        setTimeout(function() { 
         vwRegister.destroy(); 
         vwLogin.destroy(); 
        }, 2000); 
       } 
       else { 
        Ext.Msg.alert('invalid user');  
       } 
      }, 

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

我不认为这有什么做的“相同的起源”,因为我想这样做使用jQuery的$就功能同样的事情,它工作得很好。

+0

是的,这是相同的来源政策。看看'Ext.data.JSONP'。 –

+0

使用像XAMPP这样的本地网络服务器 –

回答

1

检查您的调试控制台,您很可能会看到有关相同原产地策略的错误。

如果没有别的尝试使用--disable-web-security选项打开chrome以查看它是否有帮助。

请参阅this question了解确切的语法。

祝你好运,布拉德

+0

这可行,但@Even Trimboli是正确的,如果你有对api的控制权,JSONP是正确的方法。我后悔没有在我的应用程序中使用JSONP。 – bwags

1

虽然不是特别安全或建议,您也可以在禁用Web安全功能,例如同源策略的状态开始喜欢的Chrome浏览器。

对于Windows ...

chrome.exe --disable-web-security 

对于Mac ...

Chrome.app --args --disable-web-security 

因为我并不特别喜欢使用终端每一次,你可以写一个bash脚本做为你,或在Mac上使用automator。

此外,确保浏览器尚未运行,否则这将无法正常工作。

相关问题