在Get请求中替换左右父母的最佳方法

时间:2017-06-02 15:53:26

标签: javascript html angularjs urlencode

对于我的GET请求,我的服务器拒绝了status: 403"HTTP/1.1 403 Forbidden"

我的GET请求对象如下:

"{"method":"GET","url":"api/myapi/GETstuff","params":{"from":"2017-06-02","to":"2017-06-02","myData":"DATA (AND SOME/MORE DATA)"}}"

javascript代码为:

function getMyData(params){

   var url = 'myapi/getStuff';
   
   var req = {
      method: 'GET',
      url: url,
      params: params
   };
   
   $http(req)     // details omitted for brevity
    .success()
    .error();

}

我认为问题是发送到IIS服务器的特殊字符(例如parenths和/ char),我需要在params请求之前对GET数组进行编码通过Angular $http()服务发送。

为了编码左/右父母和/字符,我正在尝试:

request.params.myData = request.params.myData.replace(/\(/g, '%28').replace(/\)/g, '%29').replace(/\//g, '%2F')

但是,我的服务器仍然拒绝该请求。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

  1. 您收到了Forbidden错误。当然,您不需要验证或传递令牌吗?
  2. 在过于手动之前,我建议尝试JSON.stringify(obj)并作为第二遍,encodeURIComponent(obj)
  3. 如果您要发布有效的JSON对象,如果您有后端访问权限,则可能需要考虑POST而不是GET。