如何在Ajax中实现相同的行为

科技巡航
$usrname = $this->session->userdata('username');
$password = $this->session->userdata('password');

$data = array('userName'=>urlencode($usrname),'password'=>urlencode($password));
$data_string = json_encode($data);
$datanew = "loginemployee=". $data_string;

$method = 'post';
$format = 'application/json';
$this->rest->format($format);
$login_url = $this->login_url;
//print_r($login_url);
//exit;
$result = $this->rest->{$method}($login_url, $datanew);

有人可以帮我吗?这实际上是一个登录网站的PHP脚本,我需要在仅使用HTML和JQuery的Cordova应用程序上实现相同的功能,因此请向我提供有关如何执行此操作的信息。

$(document).ready(function(){
$('form#loginForm').submit(function() { // loginForm is submitted
var username = $('#username').attr('value'); // get username
var password = $('#password').attr('value'); // get password
alert(username);
var UserData= {"userName":username , "password":password};
var jsonString=JSON.stringify(UserData);
var datanew  = "loginemployee=". $jsonString;
if(jsonString)
{
  alert("encoded"+jsonString);
}
if (username && password) { // values are not empty
  $.ajax({
    type: "POST",
    url: "http:// i know URL", // URL 
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    // send username and password as parameters 
    data: datanew,    // script call was *not* successful
    error: function (XMLHttpRequest, textStatus, errorThrown) {
    $('div#loginResult').text("responseText: " +    XMLHttpRequest.responseText + ", textStatus: " + textStatus + ", `enter code here`errorThrown: " + errorThrown);
    $('div#loginResult').addClass("error");
  }, // error 
  // script call was successful 
  // data contains the JSON values returned by the Perl script 
  success: function (data) {
    alert("success");

    if (data.error) { // script returned error
        $('div#loginResult').text("data.error: " + data.error);
        $('div#loginResult').addClass("error");
    } // if
    else { // login was successful
      alert(data);
      console.log(data);
        $('form#loginForm').hide();
       $("#loginResult").append('all good');
      } //else
    } // success
  }); // ajax/ if
} // if
else {
  $('div#loginResult').text("enter username and password");
  $('div#loginResult').addClass("error");
} // else
$('div#loginResult').fadeIn();
return false;
});
});
Mahendran Sakkarai

您在代码中犯了一些错误,我在下面列出了这些内容。

  1. 不要使用$('#username').attr('value')代替使用$('#username').val()因为$('#username').attr('value')在创建html时返回元素的值。但是$('#username').val()会返回当前值。相同的变化$('#password').attr('value')$('#password').val()有关更多信息,请查看此帖子
  2. javascript中的串联运算符+不是.你还添加了一个像这样的变量$jsonString
  3. 在您的服务器php代码中,如果您使用$_POST['loginemployee']来检索post值意味着不要使用contentType: "application/json; charset=utf-8",因为它将使用包括key在内的整个内容作为无效的json之类的loginemployee={"userName":"cloud","password":"cloudnine"}如果您需要这样,则意味着您需要使用file_get_contents('php://input')来检索帖子内容。但是最好不要contentType在ajax中使用这样您就可以使用轻松获取帖子内容$_POST['loginemployee']
  4. 并且如果答复是在ajax中json使用的手段dataType,则不要使用。有关更多信息contentTypedataType请查看此帖子

因此,我更新了代码。如果有任何问题,请检查并回复。希望它能如您所愿。

$(document).ready(function(){
    $('form#loginForm').submit(function() { // loginForm is submitted
        var username = $('#username').val(); // get username
        var password = $('#password').val(); // get password
        alert(username);
        var UserData= {"userName":username , "password":password};
        var jsonString=JSON.stringify(UserData);
        var datanew  = "loginemployee="+ jsonString;
        if(jsonString)
        {
            alert("encoded"+jsonString);
        }
        if (username && password) { // values are not empty
            console.log(datanew);
            $.ajax({
                type: "POST",
                url: "http://url_to_post", // URL 
                // contentType: "application/json; charset=utf-8",
                // If reply is json means uncomment the below line.
                // dataType: "json",
                // send username and password as parameters 
                crossDomain : true,
                data: datanew,    // script call was *not* successful
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    $('div#loginResult').text("responseText: " +    XMLHttpRequest.responseText + ", textStatus: " + textStatus + ", `enter code here`errorThrown: " + errorThrown);
                    $('div#loginResult').addClass("error");
                }, // error 
                // script call was successful 
                // data contains the JSON values returned by the Perl script 
                success: function (data) {
                    alert("success");
                    if (data.error) { // script returned error
                        $('div#loginResult').text("data.error: " + data.error);
                        $('div#loginResult').addClass("error");
                    } // if
                    else { // login was successful
                        console.log(data);
                        $('form#loginForm').hide();
                        $("#loginResult").append('all good');
                    } //else
                } // success
            }); // ajax/ if
        } // if
        else {
            $('div#loginResult').text("enter username and password");
            $('div#loginResult').addClass("error");
        } // else
        $('div#loginResult').fadeIn();
        return false;
    });
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Ajax中实现相同的行为

来自分类Dev

如何实现与Swift中的Strongify相同的行为?

来自分类Dev

SwiftUI SecureField:如何实现与UIKit中相同的字符遮盖行为?

来自分类Dev

如何在WordPress中实现AJAX注释

来自分类Dev

如何在Codeigniter中实现Ajax分页

来自分类Dev

如何在ajax中实现异步get

来自分类Dev

春季,jQuery:如何实现相同的行为?

来自分类Dev

如何在输入组中实现响应行为

来自分类Dev

如何在Rust中实现类似于@override的行为

来自分类Dev

如何在Aerospike中实现Redis管道的类似行为

来自分类Dev

如何在 angular 8 中制作相同材质的 sidenav 行为?

来自分类Dev

如何在AJAX请求中实现jQuery微调器图像

来自分类Dev

如何在 Laravel 中为可拖动列实现 AJAX

来自分类Dev

如何为相同命名的步骤创建多个实现(行为)

来自分类Dev

什么是实现方法重载在PHP中相同的行为最好的办法?

来自分类Dev

我如何在 C++11 中实现 Java 之类的“中断异常”行为

来自分类Dev

如何实现与LightGBM中的二进制目标具有相同行为的自定义logloss?

来自分类Dev

如何在功能组件中的功能上使用与react-router的Link相同的行为?

来自分类Dev

响应式UI 6:如何在版本6中实现与版本4相同的功能

来自分类Dev

如何在Django模板中以相同的方式实现或循环浏览这些博客文章布局?

来自分类Dev

如何在从抽象库派生的类中实现相同的方法?

来自分类Dev

响应式UI 6:如何在版本6中实现与版本4相同的功能

来自分类Dev

如何在Haskell中实现++?

来自分类Dev

如何在Mulesoft中实现IF

来自分类Dev

如何在SQL中实现

来自分类Dev

如何在 css 中实现?

来自分类Dev

如何在zsh中使星号'*'具有与bash相同的行为?

来自分类Dev

如何在Ajax发布中传递多个json对象以在conTroller中获得相同的结果

来自分类Dev

如何在Ajax发布中传递多个json对象以在conTroller中获得相同的结果

Related 相关文章

  1. 1

    如何在Ajax中实现相同的行为

  2. 2

    如何实现与Swift中的Strongify相同的行为?

  3. 3

    SwiftUI SecureField:如何实现与UIKit中相同的字符遮盖行为?

  4. 4

    如何在WordPress中实现AJAX注释

  5. 5

    如何在Codeigniter中实现Ajax分页

  6. 6

    如何在ajax中实现异步get

  7. 7

    春季,jQuery:如何实现相同的行为?

  8. 8

    如何在输入组中实现响应行为

  9. 9

    如何在Rust中实现类似于@override的行为

  10. 10

    如何在Aerospike中实现Redis管道的类似行为

  11. 11

    如何在 angular 8 中制作相同材质的 sidenav 行为?

  12. 12

    如何在AJAX请求中实现jQuery微调器图像

  13. 13

    如何在 Laravel 中为可拖动列实现 AJAX

  14. 14

    如何为相同命名的步骤创建多个实现(行为)

  15. 15

    什么是实现方法重载在PHP中相同的行为最好的办法?

  16. 16

    我如何在 C++11 中实现 Java 之类的“中断异常”行为

  17. 17

    如何实现与LightGBM中的二进制目标具有相同行为的自定义logloss?

  18. 18

    如何在功能组件中的功能上使用与react-router的Link相同的行为?

  19. 19

    响应式UI 6:如何在版本6中实现与版本4相同的功能

  20. 20

    如何在Django模板中以相同的方式实现或循环浏览这些博客文章布局?

  21. 21

    如何在从抽象库派生的类中实现相同的方法?

  22. 22

    响应式UI 6:如何在版本6中实现与版本4相同的功能

  23. 23

    如何在Haskell中实现++?

  24. 24

    如何在Mulesoft中实现IF

  25. 25

    如何在SQL中实现

  26. 26

    如何在 css 中实现?

  27. 27

    如何在zsh中使星号'*'具有与bash相同的行为?

  28. 28

    如何在Ajax发布中传递多个json对象以在conTroller中获得相同的结果

  29. 29

    如何在Ajax发布中传递多个json对象以在conTroller中获得相同的结果

热门标签

归档