Javascript 纯Ajax和传统Ajax请求是否可以在本机/混合移动应用程序上实现?

Javascript 纯Ajax和传统Ajax请求是否可以在本机/混合移动应用程序上实现?,javascript,ajax,cordova,sencha-touch,cross-domain,Javascript,Ajax,Cordova,Sencha Touch,Cross Domain,我知道,使用JSONP这项技术,我们可以提出跨域Ajax请求 但对于这个不算“纯粹和传统”的问题 我只是想知道本地/混合应用程序是否也适用“同源策略” 在这件事上似乎有很多困惑 我的一个朋友发誓说,他用“Ajax”代理将Sencha Touch 2.3.1+PhoneGap 3连接到他的后端,我很难相信这一点(代理应该是JSONP IMO),或者这只需要特殊的服务器配置,因为从未应用过同源策略“因为浏览器从未参与 我知道这类问题可能不符合SO的精神,但我认为关于这个问题的好答案会帮助很多人,因

我知道,使用JSONP这项技术,我们可以提出跨域Ajax请求

但对于这个不算“纯粹和传统”的问题

我只是想知道本地/混合应用程序是否也适用“同源策略”

在这件事上似乎有很多困惑

我的一个朋友发誓说,他用“Ajax”代理将Sencha Touch 2.3.1+PhoneGap 3连接到他的后端,我很难相信这一点(代理应该是JSONP IMO),或者这只需要特殊的服务器配置,因为从未应用过同源策略“因为浏览器从未参与

我知道这类问题可能不符合SO的精神,但我认为关于这个问题的好答案会帮助很多人,因为我还没有找到答案


Best问候@code4jhon

PhoneGap应用程序在webview中运行,而不是在浏览器中运行,因此PhoneGap应用程序不存在跨源问题,您可以对任何URL执行AJAX调用

唯一需要注意的是,config中有一个白名单参数“accessorigin”,用于限制对某些特定URL的访问

对于旧版本的PhoneGap,访问源的默认设置为localhost,但现在默认设置为“*”,允许访问任何URL


不需要使用带有PhoneGap的JSONP或cors标题。

PhoneGap应用程序在webview中运行,而不是在浏览器中运行,因此PhoneGap应用程序不存在跨源问题,您可以对任何URL执行AJAX调用

唯一需要注意的是,config中有一个白名单参数“accessorigin”,用于限制对某些特定URL的访问

对于旧版本的PhoneGap,访问源的默认设置为localhost,但现在默认设置为“*”,允许访问任何URL


不需要使用带有PhoneGap的JSONP或cors标题。

我认为这是不可能的,因为来自移动设备的请求具有原始
文件://
,基本上与从桌面打开html文档相同。我认为,除了
文件://
@Dawson Loudon之外,不可能从移动设备上运行任何类型的服务,这些服务将充当服务器,从特定来源发送请求,这意味着要从SenchaTouch+PhoneGap使用REST服务,必须使用JSONP技术?或者在开发PhoneGap应用程序时如何与后端通信?@Dawson Loudon到目前为止,我有一个Java Jersey REST应用程序和一个Sencha Touch 2.3.1+PhoneGap3应用程序,我想知道什么是优雅的通信方式……如果我能控制后端,我通常连接的是一个PHP脚本,因此,我将
alloworigin
头设置为all,并对ajax请求使用
jsonp
。如果安全性是一个问题,我会使用https、api密钥、会话令牌和基本身份验证。本机应用程序不受同源策略的约束(因为它是一种浏览器功能),可以从任意位置请求数据。服务器甚至不必知道这种性质。它只是像往常一样响应一个请求。我认为这是不可能的,因为来自移动设备的请求具有原始
文件://
,基本上与从桌面打开html文档相同。我认为,除了
文件://
@Dawson Loudon之外,不可能从移动设备上运行任何类型的服务,这些服务将充当服务器,从特定来源发送请求,这意味着要从SenchaTouch+PhoneGap使用REST服务,必须使用JSONP技术?或者在开发PhoneGap应用程序时如何与后端通信?@Dawson Loudon到目前为止,我有一个Java Jersey REST应用程序和一个Sencha Touch 2.3.1+PhoneGap3应用程序,我想知道什么是优雅的通信方式……如果我能控制后端,我通常连接的是一个PHP脚本,因此,我将
alloworigin
头设置为all,并对ajax请求使用
jsonp
。如果安全性是一个问题,我会使用https、api密钥、会话令牌和基本身份验证。本机应用程序不受同源策略的约束(因为它是一种浏览器功能),可以从任意位置请求数据。服务器甚至不必知道这种性质。它只是像往常一样响应请求。服务器端有什么特殊配置吗?我使用phonegap和ajax调用与java或php服务器通信,从来没有在服务器端进行过任何更改。服务器端有什么特殊配置吗?我使用phonegap和ajax调用与java或php服务器通信,并且从未在服务器端更改过任何内容。