Đoạn javascript get một string từ server không hoạt động

Mình chỉ có duy nhất 1 submit trong Home/Index.cshtml. Để khi click nó sẽ get một string từ server và alert nó lên:

<input type="submit" onclick="onClick()">

Và đoạn javascript:

function onClick(){
    alert("Begin");  // chạy được đoạn này
    $.get(
        "/Home/GetTime",
        null, 
        function (data){
            alert("Get success");
        })    // đoạn get này không chạy
    alert("End");  // đoạn này cũng không chạy
}

Đây là code trong HomeController:

public string GetTime(){
     return DateTime.Now.ToString();
}

Khi mình gõ trực tiếp :local:xxxx/Home/GetTime thì nó vẫn hiện được đoạn tring thời gian.
Browser là EDGE, Chrome,Firefox, IE .

get có data đâu mà để null thế kia?

$.get(URL,callback);

$.post(URL,data,callback);

3 Likes

Cảm ơn nhé.
Để mình thử xem sao.

Mình đã xóa null đi trong get nhưng vẫn không có gì xảy ra bạn ơi:

function onClick(){
    $.get(
        "/Home/GetTime",
        function (data){
            alert("Get success");
        }
    );
}

có nhiều nguyên nhân gây ra tình trạng này, bạn nên tự debug để xem trace log thì sẽ dễ hơn là cứ làm mò mò thế này.
PS: hình như với lớp ltv mới giờ debug là 1 điều gì đó xa xỉ

1 Like

bật F12 lên, chuyển qua tab Console rồi xem nó in ra bị lỗi gì

1 Like

@qloved , @tntxtnt

Mình đã bật F12-Console.

Khi load trang nó có hiện 1 lỗi:

Phân tích XML: no root element found Địa chỉ : http://localhost:49399/.......

Mình có nhìn trên thanh địa chỉ thấy địa chỉ của mình đang hiện : localhost::49204 . Không biết có lien quan gì không.

Khi mình nhấn submit, có một lỗi nữa xuất hiện:

TypeError: $ is undefined [Tìm hiểu thêm] 

Đây là toàn bộ code trong Index.cshtml của mình. Nhờ các bạn chỉ giáo.

@{
    Layout=null;
}

<script type="text/javascript>
    function onClick(){
        $.get("/Home/GetRealTime", function(data){
            alert("OK");
        });
    }
</script>

<!DOCTYPE html>
<html>
    <body>
        <div>
              <input type="submit" onclick="onClick()"/>
        </div>
    </body>
</html>

Mình mới mò cái này được mấy ngày, chưa biết debug thế nào.

ặc ko xài layout có sẵn của asp.net, hèn gì ko có thư viện jquery làm sao gọi $.get được =)

script tags để trước </body>, nghe nói để tăng tốc gì đó

để jquery trước cái function kia:

<!DOCTYPE html>
<html>
<head>
  <title>Index</title>
  <meta charset="utf-8">
</head>
<body>
  <input type="submit" onclick="onClick()">
  
  <script
    src="https://code.jquery.com/jquery-3.2.1.min.js"
    integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
    crossorigin="anonymous">
  </script>
  <script>
    function onClick(){
        alert("Begin");
        $.get(
            "/Home/GetTime",
            function (data){
                alert("Get success: " + data);
            });
        alert("End");
    }
  </script>
</body>
</html>

ý copy cái code cũ có null nó cũng chạy được @_@ thặc là kì lạ

2 Likes

Mình tạo project empty nên nó không có gì sất.
Máy lại không có mạng chắc phải tải cái jquery về.
Để mình thử lại.


À nó chạy được rồi. Cảm ơn bạn nhiều nhé !

@tntxtnt:
Cho mình hỏi một chút: Về dòng :

<script src="https://code.jquery.com/jquery-3.2.1.min.js">

Thì cái đường dẫn kia nằm ở đâu vì mình tắt toàn bộ mạng đi nó vẫn chạy được.

Máy bác nó lưu cache rồi nên nó không tải nữa, bác xoá cache đi là mất, nên download nó về local rồi thay bằng đường dẫn tương đối hoặc bằng địa chỉ local của bác

3 Likes

cướp giật solution tự bấm của ta hả :joy:

bấm Ctrl-F5 xóa cache là nó chết lại ngay

2 Likes

Ô không chon được 2 solution à :smile:
Mình tại offline về rồi.
Add vào project nó lại chết nhăn răng rồi ::)).

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?