2015-09-17 123 views
0

我一直在開發一個應用程序,我做了很多$.get將其他文件的內容導入到項目中。避免URL編碼

這些文件的名稱有這樣的特殊字符=><
例如:division_squaremeter_l=x<y.php

昨天我不得不爲我的客戶發佈一個測試版本,因爲我已經這樣做了,對這些文件的所有請求都已在本地計算機中進行了URL編碼。
我已經設法讓它在服務器上工作,但現在,當我在MAMP上運行項目時,我收到很多404消息,說這些文件不存在。

當我調試查看文件的名稱,他們似乎是這樣的: division_squaremeter_l=x%3Cy.php

我試着避免使用功能,如decodeURIComponent()但沒有成功URL編碼。

是否有解決此問題的方法?

這是一塊的我的代碼:

$.get(BASE_URL+'sections/division_squaremeter_l=x<y.php', function(response){ 
    $('#DIVISION_CONTAINER_ONE').html(response); 
}); 
+0

不,不可能在URL中傳遞任何特殊字符,它們將被編碼爲像'<'進入'%3C'。但是,給你的文件名稱的好處是什麼?把它叫做「division_squaremeter_l_is_x_smaller_y.php」。 –

回答

1

NEVER使用是encodeURI()。改用encodeURIComponent()。 第一個包含很多來自瀏覽器的猜測,並且是來自古代糟糕設計決策的不可靠遺蹟。