Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript将URL编码为ASCII_Javascript_Angularjs_Json_Ascii_Encode - Fatal编程技术网

使用javascript将URL编码为ASCII

使用javascript将URL编码为ASCII,javascript,angularjs,json,ascii,encode,Javascript,Angularjs,Json,Ascii,Encode,我正在为API编码/解码请求和响应编写一个php脚本包装器。php脚本可以很好地处理表单,但我无法使用javascript(angular)发送正确编码的请求 详情如下: 我有一个编码请求(在客户端): {“ct”:“2UEXUFIKFIZET73ABLWYRCZZNYUCAALQ6VKCABOJ/VQxDIrRXa6b4FvbVJXgU9”,“iv”:“5C37E23D740CEB7611CB707BACD6633”,“s”:“11bd03dda58ffbbe”} 表单将此请求转换为 %7B“

我正在为API编码/解码请求和响应编写一个php脚本包装器。php脚本可以很好地处理表单,但我无法使用javascript(angular)发送正确编码的请求

详情如下:

  • 我有一个编码请求(在客户端):
  • {“ct”:“2UEXUFIKFIZET73ABLWYRCZZNYUCAALQ6VKCABOJ/VQxDIrRXa6b4FvbVJXgU9”,“iv”:“5C37E23D740CEB7611CB707BACD6633”,“s”:“11bd03dda58ffbbe”}

  • 表单将此请求转换为
  • %7B“ct”%3A“2UEXUFIKFIZIZET73ABLWYRCZZNYUCAALQ6VKCABOJ/VQXDIRXA6B4FBVJXGU9%3D%3D”%2C“iv”%3A“5C37E23D740CEB7611CB707BACD6633”%2C“s”%3A“11bd03dda58ffbbe”%7D

  • 它可以工作,但我需要使用angular http.get()复制它
  • http.get无法正确转换此请求。我尝试使用encodeURI(),但没有帮助,请获取:

    %7B%22ct%22:%222UEXUFIKFIZET73ABLWYRCZZNYOUCAALQ6VKCABOJ/VQXDIRXA6B4FVBVXGU9%22%22iv%22:%225C37E23D740CEB7611CB707BACD6633%22%22s%22:%221BD03DDA58FFBBE%22%7D%

    它转换引号,基于我不需要的前一个示例


    你有什么想法吗

    encodeURI
    中的字符串将不包括前导引号和尾随引号。这只是你如何看待它的一个假象。证明:它替换了内部引号,但是表单没有这样做,正如您在第2段中看到的那样,encodeURI(您可以在示例中看到)没有替换表单post中的冒号(例如,
    多部分/form data
    ),
    %22
    是相同的。如果您有一个不同对待它们的服务器进程,那么您就有一个坏掉的服务器进程。也就是说,如果您需要撤消它,那么它很简单:
    encodeURI(数据)。replace(/%22/g,“”)
    添加了encodeURI(请求)。replace(/%22/g,“”)。replace(/,/g,“%2C”)。replace(/:/g,“%3A”);这似乎很有效,谢谢