Làm cách nào để chuyển biến JavaScript trong URL ajax?

Tôi tin rằng có một biến JS xung đột “ajaxurl” – bảng điều khiển trình duyệt đang báo cáo lỗi sau, trong trang bảng điều khiển quản trị viên và tùy biến

TypeError: ajaxurl.indexOf is not a function

Mã được đề cập ở đây [chỉ là một đoạn], cho thấy rằng nó thực sự thuộc về mã Polylang JS ["pll_ajax_backend"]

$.ajaxPrefilter[function [options, originalOptions, jqXHR] {
	if [ -1 != options.url.indexOf[ ajaxurl ] || -1 != ajaxurl.indexOf[ options.url ] ] {
		if [ 'undefined' === typeof options.data ] {
			options.data = [ 'get' === options.type.toLowerCase[] ] ? 'pll_ajax_backend=1' : {"pll_ajax_backend":1};
		} else {
.. the rest of the code

Bạn nghĩ gì về vấn đề này?
Bạn có thể xác nhận rằng sự cố này tồn tại không và nếu có, bạn cho rằng khi nào sẽ có bản sửa lỗi?

Cảm ơn

  • Chủ đề này đã được sửa đổi 2 năm 7 tháng trước bởi Micemade .
  • Chủ đề này đã được sửa đổi 2 năm 7 tháng trước bởi Micemade .

Đang xem 4 trả lời - 1 đến 4 [trong tổng số 4]

  • Tác giả plugin Chouby

    [@chouby]

    Xin chào,

    Tôi không tái tạo vấn đề. Bạn nên tìm xung đột với chủ đề hoặc plugin của mình

    Trình tạo chủ đề Micemade

    [@anydog]

    Xin chào và cảm ơn vì đã trả lời

    Dường như đã xảy ra xung đột với plugin khác [đã được giải quyết và cập nhật hôm nay]. Tuy nhiên, mã JS ở trên rõ ràng là của Polylang và lỗi được báo cáo là trên dòng đó.
    Vì tôi cũng là tác giả của plugin [và chủ đề], tôi có thể đưa ra một gợi ý [tôi hy vọng bạn không phiền] – để tránh những xung đột như vậy, tôi luôn sử dụng wp_localize_scripts để sử dụng các biến js toàn cục . Nó xuất ra đối tượng JS, bạn có thể thêm tiền tố vào để đảm bảo rằng các vars của bạn sẽ không xung đột. Đầu ra ví dụ của wp_localize_scripts.

    var MyPluginJsVars = {
        "ajaxURL":"\/\/my-site\/wp-admin\/admin-ajax.php",
        "homeurl":"\/\/my-site\/",
        "nested_node":{
            "first_child":"value",
            "second_child":"another_value",
            "empty":""
        }
    };

    Vì vậy, bạn biết cách sử dụng nó… Một lần nữa, chỉ là một gợi ý và hy vọng bạn không phiền

    Trân trọng

    • Câu trả lời này đã được sửa đổi 2 năm, 7 tháng trước bởi Micemade .

    Tác giả plugin Chouby

    [@chouby]

    Chúng tôi thực sự sử dụng wp_localize_script khi chúng tôi muốn chuyển các giá trị từ PHP sang JS. Xem https. //github. com/polylang/polylang/search?q=wp_localize_script&unscoped_q=wp_localize_script

    Nhưng tôi không thấy làm thế nào nó có thể giúp đỡ ở đây. ajaxurl là một biến toàn cầu được cung cấp bởi WordPress. Bạn nên có nó trong tiêu đề quản trị của bạn

    tuyên bố này if[isset[$_GET['var_PHP_data']]] xuất ra sai và sau đó hiển thị Hello World Tôi nên làm gì để làm cho isset[$_GET['var_PHP_data']] là đúng?

    Giải pháp tốt nhất

    Giải pháp của bạn có vấn đề về PHP. bạn không kiểm tra xem dữ liệu có tồn tại hay không và bạn cũng không làm gì với kết quả. Tôi đã sửa đổi kịch bản để làm như sau

    1. Kiểm tra xem var_PHP_data var đã được đặt chưa [bằng PHP, trên máy chủ]
    2. Nếu có, chỉ cần gửi một phản hồi văn bản trống có chứa dữ liệu đó
    3. Nếu không, sau đó vẽ biểu mẫu và mọi thứ khác
    4. Trong biểu mẫu, tôi đã tạo một div
       
           
           
             
                   
                   
               
                   $[document].ready[function[] {
                       $['#sub'].click[function[] {
                           var var_data = "Hello World";
                           $.ajax[{
                               url: '//localhost/test.php',
                               type: 'GET',
                                data: { var_PHP_data: var_data },
                                success: function[data] {
                                    // do something;
                                   $['#result'].html[data]
                                }
                            }];
                        }];
                    }];
               
             
             
               
               
      0
    5. Phản hồi Ajax sẽ được hiển thị trong div này

    Ngoài ra, hãy đảm bảo rằng bạn lưu trữ tập lệnh tại máy chủ cục bộ và tập lệnh đó được gọi là thử nghiệm. php. Để đảm bảo điều này có khả năng phục hồi, bạn có thể thay đổi URL Ajax thành

     
         
         
           
                 
                 
             
                 $[document].ready[function[] {
                     $['#sub'].click[function[] {
                         var var_data = "Hello World";
                         $.ajax[{
                             url: '//localhost/test.php',
                             type: 'GET',
                              data: { var_PHP_data: var_data },
                              success: function[data] {
                                  // do something;
                                 $['#result'].html[data]
                              }
                          }];
                      }];
                  }];
             
           
           
             
             
    1 để đảm bảo rằng bạn sẽ nhấn đúng tập lệnh

    Làm cách nào để chuyển biến từ JavaScript sang AJAX?

    Truyền các biến JavaScript với lệnh gọi AJAX “POST” . create a new object of XMLHttpRequest. Sau đó, chúng ta cần xác định loại yêu cầu và điểm cuối của API trong phương thức mở và thiết lập một chức năng trong phương thức tải.

    Làm cách nào để chuyển giá trị trong URL bằng Ajax?

    $. Hàm ajax[] . Tham số url là một chuỗi chứa URL bạn muốn truy cập bằng lệnh gọi Ajax, trong khi cài đặt là một đối tượng bằng chữ chứa cấu hình cho yêu cầu Ajax. Ở dạng đầu tiên, chức năng này thực hiện một yêu cầu Ajax bằng cách sử dụng tham số url và các tùy chọn được chỉ định trong cài đặt.

    Làm cách nào để xác định URL trong Ajax?

    Các tham số chỉ định một hoặc nhiều cặp tên/giá trị cho yêu cầu AJAX. . cú pháp

    Cách khai báo biến trong Ajax?

    Trước tiên, hãy lấy giá trị đầu vào trong javascript bằng cách sử dụng getElementById từ hộp nhập liệu, nơi đặt giá trị của biến php, Giống như,
    var inputValue=tài liệu. getElementById["txt"]. giá trị;
    Bây giờ, hãy sử dụng mã Ajax này để chuyển inputValue vào tệp php thông qua mã Ajax
    var url="ajax. php";
    url=url+"?.
    url=url+"&sid="+Toán. .
    xmlHttp. .
    xmlHttp

Chủ Đề