Ajax调用的REST URL参数中的“/”问题

时间:2010-06-03 23:35:11

标签: javascript jquery ajax url encoding

var url     = relativeURI+'/rest/PPS/Prod/'+encodeURIComponent(prod)+'/Section/'+encodeURIComponent(section);

$j.ajax({
  url: url,

  type: 'POST',

  error: function(){
    alert('Error');
  },
  success: function(){
   alert('ItWorks');
  }
});

}

在这个ajax调用中,如果我在参数prod或sec中有'/',则会出现错误。该请求甚至没有命中服务器。我在参数上使用encodeURIComponent。它适用于其中没有“/”的其他参数。请帮忙。

2 个答案:

答案 0 :(得分:0)

我复制了你的逻辑,请求会转到服务器。但是,如果服务器不喜欢URL,那么甚至不会调用您的服务器端代码。 (在我的例子中,没有服务器端代码,但我可以看到404响应,并且可以看到服务器--Apache - 解码了URL)。

因此,您的服务器可能无法解码该URL。你确定你在尝试非jquery路线时编码了吗?您可能不需要encodeURIComponent来电。如果删除它们会发生什么?

答案 1 :(得分:0)

我已经编码了参数并尝试了非jQuery路由,它工作正常(使用RESTEasy)。当我删除斜杠时,我得到404响应,这意味着没有带有该URI的REST方法。