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

时间:2012-10-25 16:33:38

标签: jquery cordova cross-domain cors http-method

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

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

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

以下是一些想法:

  1. 而不是请求数据类型的JSON或JSONP,可以请求HTML工作,然后将文档响应解析为JSON对象吗?
  2. 对于每个请求,请在页面中创建和删除iFrame,例如此海报Using PUT/POST/DELETE with JSONP and jQuery(感觉又脏又不雅)
  3. 带有用户名/密码或令牌的某种形式的服务器端CORS与请求一起发送(我首先在iOS上推出)
  4. 我无法创造性地指责的其他一些策略。
  5. 这个问题最优雅的解决方案是什么?插件是受欢迎的。

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

1 个答案:

答案 0 :(得分:5)

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