jQuery的$.ajax URL编码问题

我使用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格式”,如您所述。
翻译自:https://stackoverflow.com/questions/4485808/jquerys-ajax-url-encoding-problems

转载注明原文:jQuery的$.ajax URL编码问题