我是JQuery的新手。
我有这个功能
function verify_at_bd(){
var u = "foo";
var p = "bar";
return $.post('auth.php', { name: u, password: p, mobile: '' },
function(result){
return result;
},'json');
}
如果我执行console.log(verify_at_bd()),我将获得xmlhttprequest,但无法访问responseText属性。我正在使用标题(“Content-Type:application / json”)到我的PHP中。
我在OS X上使用firefox 3.6。
答案 0 :(得分:2)
这里是:
$.ajax({
type: 'POST',
url: 'auth.php',
data: {name: 'foo', password: 'bar', mobile: ''},
success: function(result, textStatus, xmlhttprequest){
console.log( $.parseJSON(xmlhttprequest.responseText).status);
},
dataType: 'json'
});
就是这样。
答案 1 :(得分:1)
嗯,首先,XHR必须处于readyState 4才能获得responseText。
其次,我觉得你在滥用$ .post()。这是一个异步调用,你不处理$ .post()的结果,你在成功方法中处理结果(函数(结果))。
如果你真的需要reponseText,那么在你的成功函数中添加一些参数并在那里捕捉xhr。
请参阅$ .post的jquery文档以查看哪个arg是xhr。
答案 2 :(得分:0)
正如@code poet所说,你正在以尴尬的方式使用$.post
方法。这是一个异步调用,因此在AJAX POST请求完成之前,您不能指望立即返回结果。如果您可以发布您编写的代码来处理您期望function
返回的JSON,那么建议您以正确的方式构建$.post
响应更容易。