2015-01-04 3 views
0

у меня возникают проблемы с 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> 

Это только работает, если я снимаю входные флаги и снова почему?

ответ

1

JQuery предлагает .load() для этого типа простого контента нагрузки. Это:

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

становится:

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

Что касается другого вопроса ("Почему не принимает на себя XML?"): JQuery пытается определить тип данных ответа автоматически. Этот механизм зависит от заголовка Content-Type, который посылает сервер.

Осмотрите запрос в сетевой консоли браузера, узнайте, что отправляет сервер. Он должен отправить text/html, если он отправляет что-то еще, исправьте конфигурацию вашего сервера.

0

Вы должны сообщить jquery, чтобы ожидать html, установив свойство dataType в html. Если dataType не указан, он попытается оценить тип возвращаемого значения (xml, json, html), проанализировав содержимое. В вашем случае это будет считать, что содержание - xml.

Обратитесь к документации http://api.jquery.com/jquery.get/

Смежные вопросы