来自本机移动应用程序的 AJAX 请求
Posted
技术标签:
【中文标题】来自本机移动应用程序的 AJAX 请求【英文标题】:AJAX requests from native mobile applications 【发布时间】:2012-06-21 12:34:26 【问题描述】:我一直在研究这个主题,但仍然有点困惑。
我有一个 Sencha Touch 2,它在我的机器上运行良好。这是因为我在我的机器的 apache 上配置了一个代理,它允许我在不需要绝对路径的情况下调用服务器。即请求是从我的机器以下列方式向服务器发出的:
url: /folder/subfolder/etc
如果在域 abc.mydomain.com 上公开访问该应用程序也可以工作,因为服务器在同一个浏览器上,显然它可以工作。
我需要知道的是:
我现在要将这个应用程序部署为原生 ios 应用程序。如果 URL 保留为绝对 URL,则这些 URL 将不起作用,因为由于没有配置代理,电话将无法解析该路径。但是,如果我将它们更改为绝对 URL,它们会起作用吗?根据我的阅读,手机不考虑访问源问题,因此它应该可以工作。
因此,如果我有以下要求:
var L_AssetAjaxConnection = new Ext.data.Connection();
L_AssetAjaxConnection.request(
url: /folder/subfolder/etc
timeout: 60000,
success: function(P_Response)
console.write('success');
);
failure: function(P_Response)
console.write('failed');
在我在 IOS 上部署之前,我将其更改为:
var L_AssetAjaxConnection = new Ext.data.Connection();
L_AssetAjaxConnection.request(
url: http://mydomain.com/folder/subfolder/etc
timeout: 60000,
success: function(P_Response)
console.write('success');
failure: function(P_Response)
console.write('failed');
);
这不适用于桌面。但是,它应该在 iPhone 上部署后工作吗?
期待您的反馈。
【问题讨论】:
【参考方案1】:我已经在我的 android 手机上尝试过,结果是,绝对 URL 可以在本机应用程序上运行,但由于安全问题,不能在台式机上运行。
【讨论】:
【参考方案2】:您也可以考虑在您的域上使用JSON-P 或CORS,在这种情况下,任何应用程序都可以正常工作,无论是否为原生应用程序。 Sencha 支持这两种技术(请参阅here 和here)
【讨论】:
我知道,但是 jsonp 将 url 封装在 javascript以上是关于来自本机移动应用程序的 AJAX 请求的主要内容,如果未能解决你的问题,请参考以下文章
在 API(php)中 - 了解来自本机 iOS 应用程序或 Web 的请求的方式 [重复]