Javascript Ajax响应上无法识别的JQuery表达式
我有这个jqueryajax表单Javascript Ajax响应上无法识别的JQuery表达式,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有这个jqueryajax表单 $('#modal-body-sign-in').on('submit', '#sign-in', function(e) { e.preventDefault(); var data = $(this).serialize(); var url = $(this).attr('action'); $.ajax({ //this is the php file that pr
$('#modal-body-sign-in').on('submit', '#sign-in', function(e) {
e.preventDefault();
var data = $(this).serialize();
var url = $(this).attr('action');
$.ajax({
//this is the php file that processes the data and send mail
url : url,
type : "POST",
data : data,
dataType: "html",
//Do not cache the page
cache : false,
//success
success : function(data) {
//console.log(data.content);
console.log($(data));
//$('#modal-body-sign-in').html(data);
}
});
})
在响应上,当i console.logdata时;在控制台中,它向我显示响应的html,但当我执行此控制台时;它给了我这个错误
未捕获错误:语法错误,无法识别的表达式:
<html>
<head>
<style>
ul {
margin: 0%;
}
ul li {
display: inline;
list-style-type: none;
float: left;
}
</style>
<title>Insert title here</title>
</head>
<body>
<!-- Ajax Container. DO NOT REMOVE THE DIV CONTENT FOR AJAX ACCESS! -->
<div id="content">
<div id="modal-body">
<form id="doLogin" name="doLogin" action="/HitPlay/doLogin" method="post">
<fieldset>
<ul id="doLogin_" class="errorMessage">
<li><span>Incorrect username or password</span></li> </ul>
<br/>
<br/>
<label>Username</label>
<input type="text" name="userBean.username" value="" id="doLogin_userBean_username"/>
<br/>
<label>Password</label>
<input type="password" name="userBean.password" id="doLogin_userBean_password"/>
<br />
<input type="submit" id="doLogin_0" value="Submit"/>
</fieldset>
</form>
</div>
</div>
</body>
</html> jquery-1.9.0.min.js:2
a.error jquery-1.9.0.min.js:2
f jquery-1.9.0.min.js:2
x jquery-1.9.0.min.js:2
a jquery-1.9.0.min.js:2
st.fn.extend.find jquery-1.9.0.min.js:2
st.fn.st.init jquery-1.9.0.min.js:1
st jquery-1.9.0.min.js:1
$.ajax.success localhost:59
f jquery-1.9.0.min.js:1
p.fireWith jquery-1.9.0.min.js:1
r jquery-1.9.0.min.js:3
r
因为我想获得响应HTML页面的一个片段,所以自从升级到jQuery 1.9.x以来,我遇到了完全相同的问题。实际上,简单的$data产生了崩溃,没有其他原因。在没有1.9之前的版本的情况下,我曾经有过几次这个问题,但我不记得它的问题 无论如何,这是一个完全阻塞的麻烦。。。仍在寻找原因和解决办法 编辑: 如果我这样做:
$.ajax('/',function(html){
html = $('<div></div>').append(html);
$(html);
});
它通过FF错误控制台给我一个提示:
Erreur : Error: Syntax error, unrecognized expression: <div id="...">(...)
jquery.min.js - line : 4
不管怎样,jQuery总是把我的第一个元素和第二个元素混淆起来,但至少它可以工作如果您使用的是jQuery1.9,问题可能在于加载的内容。有一个新的更新要求响应中的第一个字符是a,将其放入一个隐藏的div中,然后选择它,或者只是从服务器发送所需的输出,或者将其解析为文本,因为数据不在DOMIf中,如果您使用类似console.log$data.findcontent.html;相反,您是否仍然会收到错误?顺便说一句,在多个地方使用变量数据是令人困惑的…可能使用success:function response{…:'-我也面临着同样的问题。在看到这篇文章后,我得到了一个答案。谢谢…:-太感谢了!这让我发疯了!哇,我已经为此工作了几个小时,在我的ajax响应中我有一个空格,这导致了这个错误。这应该被标记为答案。谢谢!非常有用。我首先更改了我的标记图版,但不是降低其可读性,我认为更可靠的解决方案是在上面的链接中推荐,将$htmlString更改为$$。ParseHTMLHTMLSTRING响应非常晚,但如果存在空白问题,为什么不使用$html呢。trim@mbuff24,给猫剥皮总是有不同的方法,但你不能真的与语言u争论文档中的sed。这很清楚。使用jQuery.parseHTML解析任意HTML。
$.ajax('/',function(html){
$(html);
});
Erreur : Error: Syntax error, unrecognized expression: <div id="...">(...)
jquery.min.js - line : 4
$.ajax('/',function(html){
$($.parseHTML(html));
});