我有一个 JSONP 响应的本地版本保存为文件,因此当我没有 Internet 连接时,我可以从本地文件系统测试我的单页 Web 应用程序。
当我直接从<script>
标签加载它时它工作正常,但当我尝试使用 jQuery$.ajax()
函数加载它时却不行。(是的,我也从本地文件系统成功加载了 jQuery。)
我认为可能是 jQuery总是向 URL添加一个callback
参数,当 JSONP 来自静态命名的文件而不是来自 Internet 时,这没有意义。
我尝试将jsonpCallback
set 传递给null
或传递给空 string ''
,但这没有区别。
还有其他奇怪的地方:
- 当我将完整路径作为 URL 传递时,它在 jQuery 中运行良好,但在我使用相对 URL 时失败,即使在直接使用
<script>
标签时两者都同样有效。 - 当它失败时,谷歌浏览器的开发者工具网络标签告诉我方法是
OPTIONS
而不是GET
!使用绝对 URL 或<script>
带有相对或绝对 URL 的标记方法告诉我该方法GET
符合预期。
这是已知的正确行为吗?已知的不正确行为?
jQuery 或 Google Chrome 有什么奇怪的地方吗?(我在 Windows 7 32 位 Chrome 版本 21 中运行。)