$.get 返回“[object Document]”在带有 PhoneGap 的 iPhone 模拟器中
我正在尝试对我的 (XCode) iPhone 模拟器(使用 PhoneGap)中的本地文件执行简单的 $.get()
请求,但结果始终返回为“[object Document” ]
”(通过警报),而不是文件的实际内容。
但是,当我在 Google Chrome 中测试它时,完全没有问题。奇怪的是,我可以 $.load()
本地页面没有问题(在 iPhone 模拟器中),但是当我尝试 $.get()
它,它不会工作。
这是我的 index.html
代码:
<script type="text/javascript" src="js/phonegap.js"></script>
<script type="text/javascript" src="js/jquery.js"></script>
<div class="load"></div>
<script>
$.get('content/view/images.html', function(data) {
alert(data); // returns "[object Document]"
});
$('.load').load('content/view/images.html'); // returns actual file content
</script>
这是我的 content/view/images.html
代码:
<img src="http://static.example.com/images/{$file_key}.{$file_type}" style="max-width: 100%; max-height: 200px;" />
但是,当我更改 content/view/images 的内容时.html
到类似 LOL
的内容,它会正确地 $.get()
它。
对于世界上正在发生的事情有什么想法吗?
I'm trying to do a simple $.get()
request on a local file in my (XCode) iPhone simulator (using PhoneGap), but the result keeps returning as "[object Document]
" (via alert), instead of the actual content of the file.
However, when I test it in Google Chrome, I have no issues at all. The odd thing is that I can $.load()
the local page with no problem (in the iPhone simulator), but when I try to $.get()
it, it wont work.
Here is my index.html
code:
<script type="text/javascript" src="js/phonegap.js"></script>
<script type="text/javascript" src="js/jquery.js"></script>
<div class="load"></div>
<script>
$.get('content/view/images.html', function(data) {
alert(data); // returns "[object Document]"
});
$('.load').load('content/view/images.html'); // returns actual file content
</script>
Here is my content/view/images.html
code:
<img src="http://static.example.com/images/{$file_key}.{$file_type}" style="max-width: 100%; max-height: 200px;" />
However, when I change the content of content/view/images.html
to a something like LOL
, it will properly $.get()
it.
Any ideas as to what in the world is going on?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
除非你另外告诉 jQuery,否则它会根据随数据发回的 MIME 类型来猜测如何处理返回的数据。如果您要返回一个文档,则返回的 MIME 类型必须是 XML(因此您的 HTML 页面可能是 XHTML,或者至少服务器是这么说的)。 (请参阅有关
dataType
选项的$.ajax
文档; jQuery 创建文档的唯一时间是在处理 XML 时。)您可以通过给它一个
dataType
来告诉 jQuery 您始终希望将其作为文本,它是$.get
:...或者您可以使用
$.ajax
:Unless you tell jQuery otherwise, it will guess what to do with the data coming back on the basis of the MIME type sent back with the data. If you're getting back a document, the MIME type coming back must be XML (so presumably your HTML page is XHTML, or at least that's what the server's saying). (See the
$.ajax
documentation on thedataType
option; the only time jQuery creates a document is when dealing with XML.)You can tell jQuery you always want it as text by giving it a
dataType
, which is the argument just after the success handler in$.get
:...or you can specify it on an options object with
$.ajax
:试试这个:
try this: