我使用jQuery的$ .ajax方法来发送和检索数据到REST服务。我提供给$ .ajax方法的某些URL需要对空格和其他特殊字符进行编码。
Chrome,Safari(Webkit)和Internet Explorer浏览器的问题在于。 Firefox POST是一个编码的URL,但其他浏览器POST到未编码的URL。
举个例子:
$.ajax ({ url: "http://localhost:8080/rest/123/Product Line A/[Product Type B]",type: "POST",dataType: "json",data: { ... },success: function(...){},error: function(...){} })
Firefox以下列格式POSTS URL:
http://localhost:8080/rest/123/Product%20Line%20A/%5BProduct%20Type%20B%5D
Chrome,Safari和IE POSTS的URL格式如下:
http://localhost:8080/rest/123/Product Line A/[Product Type B]
REST服务接受编码(Firefox)格式 – 有没有办法让所有浏览器保持一致?
提前致谢!
解决方法
您可以使用javascript的encodeURI()函数将URL编码为“Firefox格式”,如您所述。