Javascript jquery POST响应成功,但数据为空

Javascript jquery POST响应成功,但数据为空,javascript,jquery,html,post,response,Javascript,Jquery,Html,Post,Response,我使用jquery向api的会话端点发送帖子以获取登录令牌。请求返回success,但数据为空。如果我在cURL中执行相同的请求,它将返回json。 我是jquery的新手。有没有人对可能出现的问题有什么建议 登录 我的服务 $(文档).ready(函数() { $(“按钮”)。单击(函数() { $.post(“www.mydomain.com/api/session”, { 用户名:“蝙蝠侠”, 密码:“123” }, 功能(数据、状态) { 警报(“数据:+数据+”\n状态:+状态);

我使用jquery向api的会话端点发送帖子以获取登录令牌。请求返回success,但数据为空。如果我在cURL中执行相同的请求,它将返回json。 我是jquery的新手。有没有人对可能出现的问题有什么建议


登录
我的服务
$(文档).ready(函数()
{
$(“按钮”)。单击(函数()
{
$.post(“www.mydomain.com/api/session”,
{
用户名:“蝙蝠侠”,
密码:“123”
},
功能(数据、状态)
{
警报(“数据:+数据+”\n状态:+状态);
});
});
});
用户名:
密码:
欢迎

mydomain描述

现在加入,看看你身边的人在做什么

你在我们这儿没有账户吗

现在在这里注册


下面是创建Ajax调用的基本步骤,现在您要做的就是创建Ajax调用。您必须从URL将数据返回到json格式,然后在success函数中尝试console.log(output),您将了解它是如何工作的

$.ajax({ url: 'your_url_here',
             data: {username: 'batman' , password : "123"},
             type: 'post',
             dataType: "json",
             success: function(output) {
                          alert(output);
                      }
    });

如果您在任何地方都不懂,请告诉我,

此外,我建议您使用比
更好的方法。单击()
函数

$(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);
                    }
      });
  });
});

问题可能是,在执行按钮单击事件后,您需要停止表单的提交。如前所述,一旦脚本完成,页面将刷新,并且没有机会处理post请求的结果。单击函数返回“false”:

   $("button").click(function() {
       $.post("www.mydomain.com/api/session",
      {
        username: "batman",
        password: "123"
      },
      function(data,status)
      {
          alert("Data: " + data + "\nStatus: " + status);
      });
      return false;
    }    
   );

完成后,您应该查看post请求是否返回任何数据。请注意,因为您要发布到一个目录,所以脚本将默认为查找索引文件,例如index.php。如果这是一个问题,请将URL更改为直接指向相关的服务器端脚本。

哇!我发现了问题,很简单。我只需要在我的url前面使用http://即可。
谢谢你的每一次帮助

你检查了控制台的同源错误?谢谢,我试试看。很好的infoPlease请让我们知道您的代码是否在线,它将帮助我找到合适的解决方案,我显然不知道我在做什么。我现在有了修改过的脚本部分:$(document).ready(function(){$(“button”).click(function(){$.ajax({url:'www.mydomain.com/api/session',data:{username:'batman',password:'123},type:'post',dataType:'json',success:function(output){alert(output);console.log(output);}}});好的,我知道了,。您所做的是将变量发布在url“www.theticle.com/api/session”上。这里我们的ajax调用工作正常。但是我们调用的URL应该会返回一些东西给我们,。目前我不认为它是否会返回任何东西,这就是为什么我们会得到空白回复的原因。让我与您分享一些linjk,它可能会帮助您了解ajax调用如何检查用户名和密码。好的,但是返回的响应是curl。我得到了一份工作。如果您试图通过该url登录,它将无法工作。它需要是curl的edi,通过一个脚本路由服务器中的所有请求。使用cURL,会话url可以正常工作,并返回带有auth标记的json。但是现在,即使使用代码(至少使代码再次运行),数据也是空的。我不明白,我仍然没有得到任何数据。响应头也是空的。为什么它能在curl中工作而不是在这里呢?上面的内容对我来说是一个简单的本地测试设置:我发布到一个包含index.php的“session”目录,其中回显了一些测试数据。结果数据按预期发出警报。这可能与您发送请求的方式有关吗?如果您还没有,可以尝试暂时更改URL以直接指向服务器端脚本,看看是否有任何区别。令人烦恼的是,我最终得到了响应,但是,这不是通过卷曲干净的URL得到的正确响应,因为路由脚本中创建了一些使请求工作所需的变量(除其他事项外),如果我调用服务器上的直接文件路径,则此路由脚本将被忽略。它必须作为一个干净的URL通过路由脚本调用。我不知道它在哪里失败…请注意这项工作,因为jQuery 1.7出于兴趣,您是否发现您仍然必须在URL中指定文件名,或者它是否与会话目录一起工作t处理会话url(假,但在我的路由脚本中处理)这是有道理的,因为这是我卷曲的地址,我得到了正确的响应。这只是因为我在apache服务器上的mod_rewrite将文件系统中所有不在文件位置的请求发送到路由器,而不管其有效性如何。它将www,mydomain.api/session视为一个不存在的文件地址,所以它只转到e router,什么也没做,然后退出。我希望你能理解我的意思。感谢你的帮助,http://it将其视为一个地址,正确地重定向到路由器脚本中的物理文件