【问题标题】:PhoneGap and different HTTP method requests to a RESTful APIPhoneGap 和对 RESTful API 的不同 HTTP 方法请求
【发布时间】:2012-10-15 21:47:01
【问题描述】:

我正在使用 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. 其他一些我无法创造性地使用的策略。

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 酷!当我落后于代码库时,我会试试这个。如果我自己这么说,这似乎是一个优雅的解决方案:)
    猜你喜欢
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    相关资源
    最近更新 更多