Magento 2 customer-data.js: 90: 23 [Đối tượng đối tượng]


11

Tôi đang sử dụng Magento 2.2 với chủ đề Porto và gặp [object Object]lỗi javascript ở customer-data.jsdòng 90 trong bảng điều khiển sau khi đăng nhập vào cửa hàng và làm mới trang hoặc chuyển sang trang khác.

Tôi đã thử nghiệm điều này trong Firefox, Chrome, IE 11 và Edge và nó chỉ hiển thị trong Firefox (trình duyệt tôi chủ yếu sử dụng).

Nó không gây ra bất kỳ vấn đề nghiêm trọng nào (không xa như tôi có thể thấy), nhưng tôi muốn giải quyết vấn đề này.

đối tượng lỗi đối tượng

dòng xảy ra lỗi

Dòng 90 của customer-data.jstệp là : "throw new Error(jqXHR);".

Bên trong đối tượng jqXHR là một thông báo phản hồi JSON:

{"tin nhắn": "\" nguồn phần thanh toán-thỏa thuận thanh toán \ "không được hỗ trợ"}

Tôi đã thấy một vài gợi ý ngoài kia, nhưng hầu hết chúng đều xoay quanh việc làm sạch bộ nhớ cache và các tệp tĩnh.

Tôi đã thử: xóa bộ nhớ cache và cookie firefox, làm sạch các tệp tĩnh Magento, bộ đệm và bộ nhớ cache lưu trữ, nhưng cho đến nay vẫn chưa có gì hoạt động ...

Và tôi không thực sự chắc chắn những gì khác để làm ... bất kỳ trợ giúp sẽ được đánh giá cao.

Chỉnh sửa / Giải pháp

Nguyên nhân của lỗi là do tôi đã vô hiệu hóa mô-đun Paypal nhưng không xóa bộ nhớ cache cục bộ / bộ nhớ của trình duyệt.

Bên trong bộ đệm này là một cuộc gọi nhất định đến mô-đun paypal không thể xử lý để nó trả về lỗi JS như thế này.

Xóa bộ nhớ cache này đã khắc phục sự cố.


Đầu tiên, kiểm tra những gì bên trong Object jqXHR. Phương thức xây dựng của lớp Error dự kiến ​​thông báo chuỗi (hoặc Object với toStringphương thức).
Siarhey Uchukhlebau

@SiarheyUchukhlebau Tôi đã chỉnh sửa câu hỏi với nội dung jqXHR.
Lez

bạn đã tìm thấy Oq jqXHR ở đâu?
krybbio

@krybbio Bạn có thể thấy nó trong khi gỡ lỗi trên dòng 90 của tệp khách hàng-data.js. Bạn cũng có thể thấy nó trong trình gỡ lỗi trình duyệt của mình trên tab mạng (tên phụ thuộc vào trình duyệt) -> bạn sẽ thấy "400 mã lỗi - yêu cầu xấu" và bên trong yêu cầu bạn sẽ thấy url yêu cầu và thông báo phản hồi.
Lez

Câu trả lời:


39

Tôi đã lãng phí một vài ngày theo nghĩa đen để cố gắng gỡ lỗi vấn đề này và cuối cùng có một giải pháp xác định hoặc công việc xung quanh tôi sẽ gọi nó. Hy vọng nó có thể cứu được một vài người khác mà tôi đang đau đầu!

Lần đầu tiên tôi nhận thấy lỗi này xuất hiện khi tôi chuyển từ Trình biên dịch phía máy khách sang Trình biên dịch phía máy chủ trong Stores->Configuration->Advanced->Developer->Frontend Development Workflow

Sau đó, tôi xác định rằng customer-data.jssử dụng localStorage trong chính trình duyệt để lưu trữ nhiều thông tin khác nhau, do đó bạn có thể xóa Bộ nhớ cache Magento tất cả những gì bạn muốn và bạn vẫn sẽ gặp sự cố.

TLDR:

Bản sửa lỗi trong Google Chrome được nhấn F12 để mở Thanh công cụ dành cho nhà phát triển, sau đó chọn tab Ứng dụng. Xóa bộ nhớ cục bộ, bộ nhớ phiên và cookie. Tải lại trang và tất cả sẽ được tốt. Bạn sẽ phải làm điều này trên trang quản trị của bạn.

Tín dụng: https://github.com/magento/magento2/issues/6410#issuecomment-243704461


5
Làm thế nào để khắc phục điều này cho tất cả người dùng của cửa hàng? Tôi có thể thấy rằng nhiều người dùng thấy lỗi này trong di tích mới và tôi đoán họ sẽ không xóa bộ nhớ cục bộ của họ (nhưng họ có thể chỉ rời khỏi trang).
bpoiss

Cảm ơn bạn vì câu trả lời này - nó đã giúp tôi tiết kiệm nhiều giờ :)
artwoz

Tôi cũng gặp lỗi này, hóa ra là do các tiêu đề đã gửi bởi một mô-đun khác. Nó giúp thêm console.log (jqXHR) ngay trước khi lỗi được đưa ra. Xem thêm magento.stackexchange.com/questions/198333/ trên ở phía dưới
Isolde

Tôi đã thử tất cả những điều bạn nói nhưng cùng một vấn đề. screencast.com/t/XEueQ00Foqs3
Pratik Mehta

Rất may đã tìm thấy điều này trước khi dành nhiều giờ, tôi đã cố gắng vô hiệu hóa phần được đặt tên sai tại một số điểm và điều này đã được lưu trữ.
Joel Davey

1

Lỗi này nói rằng dữ liệu nguồn không được chỉ định trong lớp được sectionSourceMapđặt tại Magento\Customer\CustomerData\SectionPoollớp. Các paypal-billing-agreementdữ liệu được định nghĩa trong file vendor/magento/module-paypal/etc/frontend/di.xml:

<type name="Magento\Customer\CustomerData\SectionPool">
    <arguments>
        <argument name="sectionSourceMap" xsi:type="array">
            <item name="paypal-billing-agreement" xsi:type="string">Magento\Paypal\CustomerData\BillingAgreement</item>
        </argument>
    </arguments>
</type>

Vì vậy, có thể mô-đun paypal đã bị vô hiệu hóa trong cửa hàng hoặc một số mô-đun của bên thứ ba đã vô hiệu hóa nó theo cách không đúng cách.

Để gỡ lỗi vấn đề đó, hãy mở tệp vendor/magento/module-customer/CustomerData/SectionPool.phpvà kiểm tra xem phần nào đang tải trong getSectionsDataphương thức. Ngoài ra, bạn có thể thử gọi phương thức getSectionsData(['paypal-billing-agreement'])ở đâu đó từ mã tùy chỉnh và kiểm tra từng bước tại sao dữ liệu này không tải.


1
Có vẻ như tôi đã tắt mô-đun Paypal trong ứng dụng / etc / config.php nhưng nó không bị vô hiệu hóa "theo đúng cách" vì vậy nó gây ra sự cố này. Cảm ơn về những đề nghị!
Lez

@Lez Tôi rất vui lòng giúp bạn
Siarhey Uchukhlebau

1

Đối với tôi, tôi có thể thấy vấn đề có liên quan đến món đồ tôi vừa thêm vào giỏ hàng.

nhập mô tả hình ảnh ở đây

Vì vậy, tôi đã chạy truy vấn sau trên DB để xóa tất cả các mục trích dẫn khỏi tài khoản người dùng của mình:

DELETE FROM quote WHERE customer_email = 'my.user.email@example.com';

Sau đó, vấn đề đã biến mất :)


0

Vui lòng xóa các bản ghi của mục "Chủ đề Porto" khỏi bảng "chủ đề". Các hồ sơ sẽ tự động tạo lại. Và chỉ định lại các trang web với chủ đề Porto này một lần nữa và kiểm tra.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.