Jos*_*ett 1 jquery xcode ios-simulator cordova
我正在尝试$.get()
在我的(XCode)iPhone模拟器(使用PhoneGap)的本地文件上做一个简单的请求,但结果仍然以" [object Document]
"(通过警报)而不是文件的实际内容返回.
但是,当我在谷歌浏览器中测试它时,我完全没有问题.奇怪的是,我可以$.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>
Run Code Online (Sandbox Code Playgroud)
这是我的content/view/images.html
代码:
<img src="http://static.example.com/images/{$file_key}.{$file_type}" style="max-width: 100%; max-height: 200px;" />
Run Code Online (Sandbox Code Playgroud)
但是,当我将内容更改为content/view/images.html
类似的东西时LOL
,它会正确$.get()
.
关于世界上发生了什么的任何想法?
T.J*_*der 11
除非你告诉jQuery,否则它将猜测如何处理基于与数据一起发回的MIME类型返回的数据.如果您要取回文档,则返回的MIME类型必须是XML(因此可能是您的HTML页面是X HTML,或者至少是服务器所说的).(请参阅$.ajax
有关该dataType
选项的文档; jQuery创建文档的唯一时间是处理XML时.)
你可以告诉jQuery你总是想把它作为文本给它一个dataType
,这就是成功处理程序之后的参数$.get
:
$.get('content/view/images.html', function(data) {
alert(data);
}, "text");
// ^--- new bit
Run Code Online (Sandbox Code Playgroud)
...或者您可以在选项对象上指定它$.ajax
:
$.ajax({
url: 'content/view/images.html',
dataType: "text", // <=== new bit
success: function(data) {
alert(data);
}
});
Run Code Online (Sandbox Code Playgroud)