$.get 返回“[object Document]”在带有 PhoneGap 的 iPhone 模拟器中

发布于 2025-01-05 19:29:45 字数 1105 浏览 0 评论 0原文

我正在尝试对我的 (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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

七婞 2025-01-12 19:29:45

除非你另外告诉 jQuery,否则它会根据随数据发回的 MIME 类型来猜测如何处理返回的数据。如果您要返回一个文档,则返回的 MIME 类型必须是 XML(因此您的 HTML 页面可能是 XHTML,或者至少服务器是这么说的)。 (请参阅有关 dataType 选项的 $.ajax 文档; jQuery 创建文档的唯一时间是在处理 XML 时。)

您可以通过给它一个 dataType 来告诉 jQuery 您始终希望将其作为文本,它是 $.get:

$.get('content/view/images.html', function(data) {

    alert(data);

}, "text");
// ^--- new bit

...或者您可以使用 $.ajax

$.ajax({
    url: 'content/view/images.html',
    dataType: "text",        // <=== new bit
    success: function(data) {

        alert(data);

    }
});

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 the dataType 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:

$.get('content/view/images.html', function(data) {

    alert(data);

}, "text");
// ^--- new bit

...or you can specify it on an options object with $.ajax:

$.ajax({
    url: 'content/view/images.html',
    dataType: "text",        // <=== new bit
    success: function(data) {

        alert(data);

    }
});
清醇 2025-01-12 19:29:45

试试这个:

$.ajax({
  url: 'content/view/images.html',
  success: function(data) { alert(data); },
  dataType: "text"
});

try this:

$.ajax({
  url: 'content/view/images.html',
  success: function(data) { alert(data); },
  dataType: "text"
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文