我是 Javasript 的初学者。现在我尝试向我的 php 服务器发出 http
请求,该请求将返回如下 Json 响应:
{
"error": false,
"user_id": 1,
"user": {
"username": "abc",
"email": "abc@gmail.com",
"http://192.168.1.1/abc/v1/profilepic/defaultmale.jpg"
}
}
我进行了如下所示的 Ajax 调用,但我没有从浏览器得到任何响应,而且正如我所见,我没有执行任何操作。
到目前为止我尝试过的
<script type="text/javascript">
$(document).ready(function () {
$("#loginBtn").click(function () {
var vEmail = $("#email").val();
var vPassword = $("#password").val();
if(vEmail ==='' &&vPassword === ''){
alert("please enter email and password");
}else if(vEmail !== '' && vPassword===''){
alert("password required");
}else if(vEmail ==='' && vPassword !== ''){
alert("email required");
}else{
$.post("http://localhost/abc/v1/login",
{email:vEmail, password:vPassword},
function(response){ // Required Callback Function
//"response" receives - whatever written in echo of above PHP script.
alert(response);
}
);
}
});
});
</script>
我无法在浏览器中收到alert
,我也尝试了console.log(response)
,我也无法在我的inspect element
中看到> 在 Google Chrome 中。
我也尝试过如下,但也没有运气
var obj = $.parseJson(response);
alert(obj['user_id']);
我需要知道什么
1) 这是通过 Jquery 发出 Http 请求的正确方法吗?如果不是,正确的方法是什么?
2) 如何测试是否成功收到响应?可以打印出来用于测试目的吗?
3)如何使用Jquery正确解析Json?
感谢您的提前。
更新
我也添加了失败功能,但是当我填写电子邮件
和密码
时,仍然没有任何反应(意味着浏览器只是刷新,没有警报,控制台日志只是空白) .
$.post("http://localhost/abc/v1/login",
{email:vEmail, password:vPassword},
function(response,status){ // Required Callback Function
//"response" receives - whatever written in echo of above PHP script.
alert(JSON.stringify(response));
},fail(function () {
alert("failed");
})
);
有人可以告诉我正确的方法吗?
更新
按照 @Mendax 回答后,我在 console.log 中得到了带有此响应的响应。这是什么意思?
错误
Object {readyState: 0, getResponseHeader: function, getAllResponseHeaders: function, setRequestHeader: function, overrideMimeType: function…}
最佳答案
尝试将数据作为 JSON
字符串发送。还添加一个 fail
回调来捕获错误
$.post("http://localhost/abc/v1/login",
JSON.stringify({email:vEmail, password:vPassword}),
function(response){ // Required Callback Function
//"response" receives - whatever written in echo of above PHP script.
console.log(response);
}, "json").fail(function(error) { console.log(error) });;
要测试是否收到响应,您可以访问控制台中的
newtwork
选项卡,或者添加fail
回调会有所帮助。要解析
JSON
,您可以使用JSON.parse()
。
关于javascript - 无法使用 Jquery 从 Api 接收 Json 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43714657/