PhoneGap和RESTful API的不同HTTP方法请求

问题描述 投票:4回答:1

我正在使用PhoneGap构建一个移动应用程序,我需要它来适应我的服务RESTful api。

基本上如果我想检索/删除/更新/检查/(非幂等操作)资源,通过jQuery的ajax方法向http://example.com/resource/:id发出GET / DELETE / PUT / HEAD / POST请求是支持的。 这是我遇到问题的地方。

由于PhoneGap保存文件并在本地提供文件(例如:file://file.html),因此我将遇到ajax调用的跨域问题。 另外,我知道JSONP基本上是在文档中插入脚本,因此是一种请求方法的解决方案

以下是一些想法:

  1. 请求HTML工作,而不是请求数据类型的JSON或JSONP,然后将文档响应解析为JSON对象?
  2. 对于每个请求,创建和删除页面中的iFrame,如此海报使用PUT / POST / DELETE与JSONP和jQuery (感觉脏和不优雅)
  3. 某种形式的服务器端CORS与用户名/密码或令牌一起发送请求允许这个(我先在iOS上推出)
  4. 我无法创造性地指出的其他一些策略。

什么是这个问题最优雅的解决方案? 插件是受欢迎的。

TL; DR:如何针对不同的HTTP方法为$ .ajax请求添加跨域支持?

jquery cordova cross-domain cors http-method
1个回答
5
投票

您必须在PhoneGap属性中将服务器列入白名单。 默认情况下,PhoneGap限制对外部站点的访问以防止出现安全问题。 PhoneGap没有像标准的http托管网站那样的跨域问题。 有关详细信息,请阅读此处: http//docs.phonegap.com/en/2.1.0/guide_whitelist_index.md.html#Domain%20Whitelist%20Guide

© www.soinside.com 2019 - 2024. All rights reserved.