我遇到了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>
这只有在我取消输入标志时才会起作用吗?
答案 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。