我正在使用jquery将帖子发送到我的api的会话端点以获取登录令牌。请求返回成功,但数据为空。如果我在cURL中执行相同的请求,则返回json。 我是jquery的新手。有没有人对这个问题有什么建议?
<!DOCTYPE html>
<HTML>
<HEAD>
<TITLE> login </TITLE>
</HEAD>
<LINK rel="stylesheet" type="text/css" href="login.css" />
<BODY>
<DIV id="container">
<DIV id="header">
<IMG src="image.bmp" alt="logo" style="width:64px;height:64px;"/>
<H1> my service </H1>
</DIV>
<DIV id="content">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
$(document).ready(function()
{
$("button").click(function()
{
$.post("www.mydomain.com/api/session",
{
username: "batman",
password: "123"
},
function(data,status)
{
alert("Data: " + data + "\nStatus: " + status);
});
});
});
</script>
<DIV id="loginform">
<form method="POST">
Username: <input type="text" name="username" /><br />
Password: <input type="password" name="password" /><br />
<button> welcome! </button>
</form>
</DIV>
<DIV id="description">
<P>mydomain description</P>
<P>Join now to see what people are doing near you!</P>
</DIV>
<DIV id="register">
<P>Dont have an account with us? </P>
<P>Register here now !!</P>
</DIV>
</DIV>
<DIV id="nav">
</DIV>
</DIV>
</DIV>
</BODY>
</HTML>
答案 0 :(得分:2)
WOW!我发现了问题,这很简单。我只需要在我的网址前面使用http://。 感谢每一个时间和帮助!。
答案 1 :(得分:0)
此外,Punit的答案,我建议使用优于.click()
函数的$.on()
方法。
$(function() {
// equals to $(document).ready(function(){ but faster to wright
$("#loginform").on('click', 'button', function() {
//Punit's Code (that is good !!)
$.ajax({ url: 'your_url_here',
data: {username: 'batman' , password : "123"},
type: 'post',
dataType: "json",
success: function(output) {
alert(output);
}
});
});
});
答案 2 :(得分:0)
问题可能是您需要在执行按钮单击事件后停止提交表单。如上所述,一旦脚本完成,页面就会刷新,并且没有机会处理发布请求的结果。从点击功能返回'false':
$("button").click(function() {
$.post("www.mydomain.com/api/session",
{
username: "batman",
password: "123"
},
function(data,status)
{
alert("Data: " + data + "\nStatus: " + status);
});
return false;
}
);
这样做你应该看看你的帖子请求是否返回任何数据。请注意,因为您要发布到目录,所以该脚本将默认查找索引文件,例如index.php文件。如果这是一个问题,请将您的URL更改为直接指向相关的服务器端脚本。
答案 3 :(得分:-1)
以下是创建Ajax调用的方法,现在您需要执行此操作。你必须从URL返回数据到json格式,然后在success函数中尝试console.log(输出),你会发现它很热的想法。
$.ajax({ url: 'your_url_here',
data: {username: 'batman' , password : "123"},
type: 'post',
dataType: "json",
success: function(output) {
alert(output);
}
});
如果你不懂任何地方,请告诉我,