jquery $ .get返回xmlobject

时间:2015-01-04 12:09:54

标签: javascript jquery

我遇到了jquery .get

的麻烦

我的代码非常简单:

$.get('a.html', function(data) {
    $('.main').html(data)
});

在a.html中只有:

<p> hi </p>

它不起作用,因为数据不是XMLObject,我修复了它:

$.get('a.html', function(data) {
    var xmlString = (new XMLSerializer()).serializeToString(data);
    $('.main').html(xmlString)
});

第一个问题,是否有人知道为什么第一个代码不起作用?

现在我在a.html:

<form action="contactform_submit" method="get" accept-charset="utf-8">
    <p>name : </p><input type="text" name="name" placeholder="Your name">
    <input type="submit" name="Send" value="Send" id="button">
</form> 

这只有在我取消输入标志时才会起作用吗?

2 个答案:

答案 0 :(得分:1)

jQuery为此类简单内容加载提供.load()。这样:

$.get('a.html', function(data) {
    $('.main').html(data)
});

变为:

$('.main').load('a.html');

至于你的另一个问题(&#34;为什么它假设XML?&#34; ):jQuery会尝试自动确定响应的数据类型。该机制取决于服务器发送的Content-Type标头。

在浏览器的网络控制台中检查请求,找出服务器发送的内容。 发送text/html,如果发送其他内容,请修复服务器的配置。

答案 1 :(得分:0)

你应该告诉jquery通过将dataType属性设置为html来期望html。如果未指定dataType,它将尝试通过解析内容来估计返回类型(xml,json,html)。在您的情况下,它会认为内容是xml。

请查看文档http://api.jquery.com/jquery.get/