2015-10-05 15 views
13

Tôi đang làm một cái gì đó như thế nàyjquery ajax khoảng trắng và vấn đề dấu và

var apiOptions = { 
    url: url, 
    dataType: 'jsonp', 
    type: "GET", 
    success: success 
}; 

if(dataOptions) { 
    apiOptions.data = { 
     key: self.settings.key, 
     limit: self.limit, 
     address: dataOptions.address, 
    }; 
} 
$.ajax(apiOptions); 

Và nó hoạt động tốt cho tất cả mọi thứ trừ khi tôi có "&", do đó không gian xung quanh một dấu. Vì vậy, tham số yêu cầu trông giống như "D+&+D,+enterprisess" hoặc D+%26+D%2C. Điều này sau đó trả về một 404 trên máy chủ.

Bất kỳ ý tưởng nào cần làm ở đây?

+0

Sử dụng 'encodeURIComponent() 'để URL mã hóa giá trị của bạn. –

+0

Từ những gì tôi đọc đi qua các tham số của tôi trong cuộc gọi jquery ajax tôi không cần phải làm. Ngoài ra tôi đã thử nó và nó phá vỡ nó thậm chí tệ hơn tôi nghĩ rằng nó giống như mã hóa đôi sau đó – StevieB

+0

Funnily đủ nó hoạt động trên máy chủ địa phương của tôi tức là tham số như "D +% 26 + D% 2C" nhưng không phải trên máy chủ phát triển – StevieB

Trả lời

2

Đối với các tham số truyền với dấu cách và ký tự không gian trong ajax, bạn đã sử dụng chức năng thoát và unescape.

var test = 'Exemplae Actão ç @#$%$ '; 
var testEscape = escape(test); 
console.info(test , testEscape , unescape(testEscape)); 

này giải quyết vấn đề bạn

1

Hãy thử sử dụng String.prototype.replace() với RegExp()/\s(&)\s/

var data = "123 & abc"; 
 
var res = data.replace(/\s(&)\s/, "$1"); 
 
console.log("data:", data,"res:", res)

Các vấn đề liên quan