【发布时间】: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 基本上是在文档中插入一个脚本,因此是一种请求方法的解决方案
这里有一些想法:
- 不是请求 JSON 或 JSONP 数据类型,而是请求 HTML 工作,然后将文档响应解析为 JSON 对象?
- 对于每个请求,在页面中创建和删除一个 iFrame,例如这张海报 Using PUT/POST/DELETE with JSONP and jQuery(感觉又脏又不雅)
- 某种形式的带有用户名/密码或令牌的服务器端 CORS 与请求一起发送以允许这样做(我首先在 iOS 上推出)
- 其他一些我无法创造性地使用的策略。
这个问题最优雅的解决方案是什么?欢迎使用插件。
TL;DR:如何为不同 HTTP 方法的 $.ajax 请求添加跨域支持?
【问题讨论】:
标签: jquery cordova cross-domain cors http-method