5

Tôi gặp một số vấn đề với việc mã hóa yêu cầu tùy thuộc vào trình duyệt.Mã hóa yêu cầu mã hóa và ký tự không hợp lệ (trong FF hoạt động tốt)

Các bãi bên dưới hiển thị tiêu đề khác nhau giữa FF và Chrome (Tôi đã xóa tất cả các tiêu đề bằng nhau). Xem các đại diện của các giá trị "tìm kiếm":

Firefox: Ok

Accept-Language: es-ar,es;q=0.8,en-us;q=0.5,en;q=0.3 
Accept-Encoding: gzip, deflate 
Content-Type: application/json;charset=utf-8 

POST: {"data":{"size":10,"search":"José","order":"name","page":1}} 

Chrome: Không ok

Pragma: no-cache 
Cache-Control: no-cache 
Origin: http://localhost 
Content-Type: application/json;charset=UTF-8 
Accept-Encoding: gzip,deflate,sdch 
Accept-Language: es-ES,es;q=0.8 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 

POST: {"data":{"size":10,"search":"José","order":"name","page":1}} 

IE Đừng làm việc

Tôi đã cố ép Nội dung loại ở $ http, nhưng không phải g. Các phản hồi trong cả hai trình duyệt đều hoạt động tốt. Tôi đang sử dụng Apache trên Win 7 "por si las moscas".

Quan trọng: Yêu cầu có định dạng không tốt trước khi được gửi tới máy chủ, các tiêu đề ở trên mà tôi lấy từ Firebug và Chrome sẽ kiểm tra.

Bất kỳ ý tưởng nào? Cảm ơn!

José

CẬP NHẬT

tôi làm cho url mã hóa để cầu môn, giải mã trong máy chủ, tôi nhận thấy rằng với UTF-8 công việc url decode xấu, nhưng với tiêu chuẩn ISO-8859-1 làm việc tốt. Sau đó trình duyệt gửi bài đăng với ISO-8859-1?

Trả lời

0

Theo w3 spec, bộ ký tự ISO-8859-1 là mặc định khi không có gì được chỉ định hoặc không có tiêu đề Accept-Charset. Có khả năng các bộ ký tự khác đã làm hỏng mọi thứ.

thử hoàn tác tiêu đề đó:

$http({ 
    method: 'POST', 
    url: '/page.html', 
    headers: { 'Accept-Charset': undefined } 
}) 
.success(function(){ /*success fn here*/ }); 
Các vấn đề liên quan