Làm cách nào để phiên giá trị trong javascript?

Chúng tôi lưu một phiên trong bộ điều khiển laravel và sau đó truy cập xem tệp hoặc sử dụng phiên đó trong mã javascript

Bộ điều khiển

người dùng xem tập tin

Bây giờ trong tệp xem, chúng tôi nhận được giá trị phiên của mình trong biến javascript


  
  

THis is session value in html {{ Session::get('user_name') }}

Làm cách nào để phiên giá trị trong javascript?

Anmol Sharma

Tôi là một kỹ sư phần mềm và có kinh nghiệm về các công nghệ phát triển web như php, Laravel, Codeigniter, javascript, jquery, bootstrap và tôi muốn chia sẻ kiến ​​thức sâu rộng của mình qua các blog này

Động cơ của chúng tôi là tìm hiểu về phiên và đặt biến phiên trong JavaScript. Phiên là một phần của bộ lưu trữ phía máy chủ nơi dữ liệu được lưu trữ và truy cập tùy thuộc vào id duy nhất của mỗi người dùng

Chẳng hạn, bất cứ khi nào người dùng tương tác với trang web, nó sẽ tạo một đối tượng phiên mới cho người dùng cụ thể đó và gán cho họ một cookie

Cookie này được kiểm tra bất cứ khi nào người dùng yêu cầu lại từ máy khách chính xác và được gửi đến máy chủ để xử lý thêm và cập nhật thông tin phiên đã được lưu trữ. Các phiên sẽ bị xóa ngay khi người dùng xóa cookie

Bạn có thể có một câu hỏi tại sao nó quan trọng để sử dụng phiên?

Giao thức HTTP không trạng thái không theo dõi bất kỳ thông tin nào về phản hồi & yêu cầu, điều đó có nghĩa là không có mối quan hệ nào giữa nhiều yêu cầu của một người dùng (cùng một người dùng). Các phiên được sử dụng để giải quyết vấn đề này

Ví dụ: chúng tôi có một biểu mẫu có nhiều trang. Trang 1, Trang 2 và Trang 3 lần lượt là về thông tin cá nhân, chi tiết giáo dục và thông tin gia đình

Ứng dụng chỉ có thể được gửi sau khi người dùng điền vào cả ba trang. Trong trường hợp này, chúng tôi có thể cần lưu trữ dữ liệu đã gửi từ Trang 1&2 vào một phiên

Sau khi người dùng gửi Trang 3, chúng tôi có thể lấy trang 3 đó từ yêu cầu HTTP và Trang 1&2 còn lại từ phiên. Đó là cách phiên được sử dụng

Bây giờ chúng tôi hiểu các phiên và biết rằng máy chủ duy trì chúng. Không thể gán giá trị phiên trực tiếp bằng JavaScript, nhưng chúng tôi (với tư cách là nhà phát triển web) muốn sử dụng lưu trữ phiên cục bộ để lưu, truy xuất, cập nhật dữ liệu

Chúng ta có thể sử dụng localStoragesessionStorage

localStorage so với sessionStorage trong JavaScript

Đối tượng localStorage cho phép lưu trữ dữ liệu theo cặp khóa-giá trị trong trình duyệt mà không hết hạn. Ngay cả sau khi đóng tab hoặc trình duyệt, dữ liệu vẫn có thể được sử dụng cho các phiên sắp tới (phiên tương lai)

Đối tượng sessionStorage tương tự như đối tượng localStorage, nhưng nó chỉ lưu trữ dữ liệu cho một phiên. Dữ liệu bị mất khi tab/trình duyệt bị đóng hoặc làm mới

Sau đây là một so sánh ngắn gọn giữa cả hai, nhưng bạn có thể tìm hiểu thêm về nó ở đây

Dung lượng lưu trữ của phiên lưu trữ cục bộ 10 MB5 MBTrình duyệtHTML 5HTML 5Có thể truy cập từ bất kỳ cửa sổ nàoCùng một tabHết hạnKhông bao giờ đóng tabVị trí lưu trữChỉ trình duyệtChỉ trình duyệtĐã gửi với yêu cầuKhôngKhông

Đặt biến trong localStorage và sessionStorage bằng JavaScript

Các phương pháp lưu trữ và truy xuất dữ liệu trong localStoragesessionStorage là giống nhau. Những phương pháp này được liệt kê dưới đây

chức năng GetDeptNames (Phiên ["logindept"]. ToString())  và sau đó tôi đã thử kết hợp các dấu ngoặc đơn và dấu ngoặc kép khác nhau nhưng tất cả đều không thành công

tôi muốn làm rõ một điểm rằng phiên của tôi là một chuỗi chuỗi chứ không phải một chuỗi

sau đó tôi đã thử bằng cách sử dụng trường ẩn được gán giá trị cho trường ẩn như ở một dạng là dạng chính

tệp đính kèm. Có thể sử dụng tối đa 10 tệp đính kèm (bao gồm cả hình ảnh) với tối đa 3. 0 MiB mỗi cái và 30. tổng cộng 0 MiB

Làm cách nào để phiên giá trị trong javascript?
AgaveJoe · 03 tháng 3 năm 2022 lúc 10. 54 giờ sáng

Làm cách nào để tôi nhận được giá trị của Biến phiên được đặt trong JavaScript trong WebMethod?

JavaScript không thể đặt trực tiếp biến Phiên. JavaScript chạy trong trình duyệt trong khi Phiên tồn tại trên máy chủ. Sử dụng AJAX để gửi yêu cầu HTTP để đặt Phiên trên máy chủ

0 Phiếu bầu 0 ·

Làm cách nào để phiên giá trị trong javascript?
QamarMo-8446 AgaveJoe · 03 tháng 3 năm 2022 lúc 01. 02 giờ chiều

Tôi có thể đặt biến Phiên như sau và biến này hoạt động tốt trong WebMethod.
'

Nhưng, điều tương tự sẽ không hoạt động nếu tôi gán một biến cho txtFirstName. Giá trị và chuyển nó vào Phiên

Bạn có mã mẫu hoặc tài liệu tham khảo để thử AJAX để gửi yêu cầu HTTP để đặt Phiên trên máy chủ không?

0 Phiếu bầu 0 ·

LanHuang-MSFT đã trả lời Ngày 3 tháng 3 năm 22 | LanHuang-MSFT đã chỉnh sửa Ngày 4 tháng 3 năm 22

Xin chào @QamarMo-8446,
Trong hàm JavaScript, hãy sử dụng nhiệm vụ XmlHt tpRe để thực hiện lệnh gọi AJ AX tới WebMethod của phiên SetSe và gửi các giá trị tới WebMethod.
WebMethod sau đó trả về một chuỗi, chuỗi này được hiển thị bằng hộp thông báo cảnh báo JavaScript.
Đây là ví dụ. 179622-345. txt
CHỈNH SỬA
179925 phía trước. txt
mã đằng sau

  public static void UploadImage(string imageData)
         {          
             byte[] data = Convert.FromBase64String(imageData);
             Document pdfDoc = new Document();         
             var output = new FileStream(HttpContext.Current.Server.MapPath("2.pdf"), FileMode.Create);
             PdfWriter writer = PdfWriter.GetInstance(pdfDoc, output);
             pdfDoc.Open();
             iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(data);
              pdfDoc.Add(img);
              pdfDoc.Close();           
         }    
         protected void Button1_Click1(object sender, EventArgs e)
         {
             Process.Start(Server.MapPath("2.pdf"));
         }

Làm cách nào để phiên giá trị trong javascript?

Trân trọng,
Lan Huang


Nếu câu trả lời là giải pháp phù hợp, vui lòng nhấp vào "Chấp nhận câu trả lời" và vui lòng ủng hộ nó. Nếu bạn có thêm câu hỏi về câu trả lời này, vui lòng nhấp vào "Nhận xét".
Lưu ý. Vui lòng làm theo các bước trong tài liệu của chúng tôi để bật thông báo qua e-mail nếu bạn muốn nhận thông báo qua email liên quan cho chủ đề này.


1. jpg (119. 9 KiB)

1. jpg (99. 7 KiB)

345. txt (1. 3 KiB)

phía trước. txt (2. 1 KiB)

8. gif (142. 6 KiB)

Nhận xét

Nhận xét · Hiển thị 2

Nhận xét

5. Cần 1600 ký tự còn lại ký tự

  • Hiển thị cho tất cả người dùng
  • Hiển thị với người đăng gốc & Microsoft
  • Người kiểm duyệt có thể xem
  • Có thể xem bởi người kiểm duyệt và người đăng gốc
  • Khả năng hiển thị nâng cao
Chuyển đổi chế độ hiển thị Nhận xét. Hiển thị hiện tại. Hiển thị với tất cả người dùng

tệp đính kèm. Có thể sử dụng tối đa 10 tệp đính kèm (bao gồm cả hình ảnh) với tối đa 3. 0 MiB mỗi cái và 30. tổng cộng 0 MiB

QamarMo-8446 · 03/03/2022 lúc 01. 37 giờ chiều

Xin chào,
Tôi đã có mã mà bạn cung cấp và phần đó hoạt động cho các điều khiển Đầu vào (loại=văn bản) khác của tôi.
Nhưng, tôi không thể tìm ra cách truyền một đối tượng hình ảnh obj. imageData để yêu cầu. gửi()

var img = new Image();
img. src = obj. dữ liệu hình ảnh;


Về cơ bản, tôi có một trang có một số điều khiển hộp văn bản và một điều khiển Canvas đã có chữ ký trong đó.
Tôi có thể tạo pdf tất cả các nhãn và giá trị điều khiển hộp văn bản nhưng tôi không thể lấy chữ ký từ Canvas
Có chữ ký trong đó - Phần này .
Bây giờ, tôi muốn thêm chữ ký vào pdf

0 Phiếu bầu 0 ·

AgaveJoe QamarMo-8446 · 03/03/2022 lúc 02. 07 giờ tối

Nếu tôi hiểu, câu hỏi này không liên quan gì đến Phiên ???

https. // stackoverflow. com/questions/13198131/how-to-save-an-html5-canvas-as-an-image-on-a-server

0 Phiếu bầu 0 ·

AgaveJoe đã trả lời Ngày 3 tháng 3 năm 22

Tôi có thể đặt biến Phiên như sau và biến này hoạt động tốt trong WebMethod.
'

Đúng, cũng không thể đặt Phiên từ giá trị nhập văn bản từ phương thức Web. Phương thức web ASPX là tĩnh và do đó không thể tham chiếu các thành viên phiên bản và các dịch vụ web ASMX không có giao diện người dùng

Bạn có mã mẫu hoặc tài liệu tham khảo để thử AJAX để gửi yêu cầu HTTP để đặt Phiên trên máy chủ không?

Bạn đã không cho chúng tôi biết nếu bạn đang làm việc với Phương thức web ASPX hoặc Phương thức web ASMX. Tôi sẽ giả sử ASPX. Với một trong hai, bạn phải bật Phiên vì Phiên không được bật theo mặc định

 [WebMethod(EnableSession = true)]
 public static string MyFunction(string jstring)
 {
     HttpContext.Current.Session["jstring"] = jstring;
     return "You send " + jstring;
 }

AJAX có mẫu sau.

Làm cách nào để phiên giá trị trong javascript?




chụp. png (21. 9 KiB)

Nhận xét

Hiển thị nhận xét 0

Nhận xét

5. Cần 1600 ký tự còn lại ký tự

  • Hiển thị cho tất cả người dùng
  • Hiển thị với người đăng gốc & Microsoft
  • Người kiểm duyệt có thể xem
  • Có thể xem bởi người kiểm duyệt và người đăng gốc
  • Khả năng hiển thị nâng cao
Chuyển đổi chế độ hiển thị Nhận xét. Hiển thị hiện tại. Hiển thị với tất cả người dùng

tệp đính kèm. Có thể sử dụng tối đa 10 tệp đính kèm (bao gồm cả hình ảnh) với tối đa 3. 0 MiB mỗi cái và 30. tổng cộng 0 MiB

QamarMo-8446 đã trả lời Ngày 3 tháng 3 năm 22 | LanHuang-MSFT đã nhận xét Ngày 4 tháng 3 năm 22

Tôi đang sử dụng aspx.
Tôi đã có thể tiến lên một chút và bây giờ tôi có thể lưu chữ ký Canvas trong WebMethod.
string imageData = values[10];
string fileNameWitPath = @"C. \temp\" + Ngày giờ. Bây giờ. ToString(). Thay thế("/", "-"). Thay thế(" ", "- "). Thay thế(". ","") + ". png";
sử dụng (FileStream fs = new FileStream(fileNameWitPath, FileMode. Tạo))
{
sử dụng (BinaryWriter bw = new BinaryWriter(fs))

             {
                 byte[] data = Convert.FromBase64StringimageData 
                 //byte[] data = Convert.FromBase64String(imageData);
                 bw.Write(data);
                 bw.Close();
             }
         }

Bây giờ, tôi cần tìm hiểu cách sử dụng dữ liệu byte[] để thêm vào pdf

Nhận xét

Nhận xét · Hiển thị 2

Nhận xét

5. Cần 1600 ký tự còn lại ký tự

  • Hiển thị cho tất cả người dùng
  • Hiển thị với người đăng gốc & Microsoft
  • Người kiểm duyệt có thể xem
  • Có thể xem bởi người kiểm duyệt và người đăng gốc
  • Khả năng hiển thị nâng cao
Chuyển đổi chế độ hiển thị Nhận xét. Hiển thị hiện tại. Hiển thị với tất cả người dùng

tệp đính kèm. Có thể sử dụng tối đa 10 tệp đính kèm (bao gồm cả hình ảnh) với tối đa 3. 0 MiB mỗi cái và 30. tổng cộng 0 MiB

AgaveJoe · 03/03/2022 lúc 04. 22 giờ tối

Bây giờ, tôi cần tìm ra cách sử dụng dữ liệu byte[] để thêm vào pdf

Bạn sẽ cần đọc tài liệu về thư viện PDF mà bạn đang sử dụng

Hãy ghi nhớ, bạn đã hỏi ba câu hỏi khác nhau trong chủ đề này. Sắp xếp suy nghĩ của bạn và tạo một bài đăng mới với tất cả thông tin mà một thành viên diễn đàn cần để gỡ lỗi mã của bạn



0 Phiếu bầu 0 ·

Làm cách nào để phiên giá trị trong javascript?
LanHuang-MSFT · 04/03/2022 lúc 04. 41 giờ sáng

Xin chào @QamarMo-8446,
Tôi đã sửa đổi câu trả lời của mình cho các nhu cầu mới của bạn, bạn có thể kiểm tra nó.
Nếu bạn có câu hỏi mới, vui lòng mở một bài đăng mới.
Trân trọng,
Lan Huang


Nếu câu trả lời là giải pháp phù hợp, vui lòng nhấp vào "Chấp nhận câu trả lời" và vui lòng nâng cấp nó. Nếu bạn có thêm câu hỏi về câu trả lời này, vui lòng nhấp vào "Nhận xét"

0 Phiếu bầu 0 ·

QamarMo-8446 đã trả lời Ngày 3 tháng 3 năm 22 | AgaveJoe đã nhận xét Ngày 3 tháng 3 năm 22

Bạn nói đúng nhưng
Rất khó để đăng những câu hỏi này; . Trên thực tế, tôi đã đăng một câu hỏi về lỗi này và hỏi tại sao tôi gặp lỗi nhưng không ai trả lời.

Bây giờ tôi cho phép tôi đăng nhưng CHỈ đôi khi và không sử dụng tùy chọn "Mẫu mã"

Nhận xét

Nhận xét · Hiển thị 1

Nhận xét

5. Cần 1600 ký tự còn lại ký tự

  • Hiển thị cho tất cả người dùng
  • Hiển thị với người đăng gốc & Microsoft
  • Người kiểm duyệt có thể xem
  • Có thể xem bởi người kiểm duyệt và người đăng gốc
  • Khả năng hiển thị nâng cao
Chuyển đổi chế độ hiển thị Nhận xét. Hiển thị hiện tại. Hiển thị với tất cả người dùng

tệp đính kèm. Có thể sử dụng tối đa 10 tệp đính kèm (bao gồm cả hình ảnh) với tối đa 3. 0 MiB mỗi cái và 30. tổng cộng 0 MiB

AgaveJoe · 03 tháng 3 năm 2022 lúc 09. 29 giờ tối

Mặc dù tôi nhận ra rằng việc không thể đăng JavaScript là một điều khó khăn nhưng điều đó không ngăn cản bạn làm theo lời khuyên được đưa ra và đăng ảnh chụp màn hình của JavaScript hoặc tệp văn bản. Chia sẻ mã không đầy đủ và định dạng kém buộc cộng đồng phải đoán cách mã của bạn hoạt động

Làm cách nào để đặt giá trị cho phiên trong javascript?

Cú pháp .
Lưu dữ liệu vào bộ nhớ phiên. phiênStorage. setItem("key", "value");
Đọc dữ liệu từ lưu trữ phiên. để họ = sessionStorage. getItem("key");
Xóa dữ liệu khỏi bộ nhớ phiên. phiênStorage. removeItem("key");
Xóa tất cả (Xóa bộ nhớ phiên) sessionStorage. thông thoáng();

Bạn có thể truy cập các biến phiên trong javascript không?

Bạn không thể đặt các biến phiên bên phiên từ Javascript . Nếu bạn muốn làm điều này, bạn cần tạo một BÀI ĐĂNG AJAX để cập nhật điều này trên máy chủ mặc dù nếu việc lựa chọn một chiếc ô tô là một sự kiện lớn thì việc POST này có thể dễ dàng hơn.

Làm cách nào để nhận giá trị phiên trong tệp javascript bên ngoài?

Bạn có thể truy cập biến Phiên trong. cshtml và chuyển nó sang tệp javascript bên ngoài bằng cách gọi hàm của bên ngoài. tệp js . var userid = '@Session["UserID"]';

Cách nhận giá trị phiên trong javascript MVC?

Chúng tôi đã đặt phiên trong HomeController. .
lớp công khai HomeController. Bộ điều khiển
[HttpGet]
bảng điều khiển ActionResult công khai()
Phiên ["Tên người dùng"] = "Quản trị viên";
trả về Chế độ xem();