在 GET ajax 调用中传递十六进制颜色

Inf*_*ank 4 javascript php ajax get

我正在尝试通过 GET ajax 调用将一些十六进制颜色传递给 php 脚本。PHP 似乎不喜欢十六进制颜色,但我尝试过替换#和 使用encodeURIComponent这两种颜色都不起作用。

这是 js(每个currentColors条目都是十六进制颜色)

var dataString = 'designName=test&mc1='+currentColors[1]+'&mc0='+currentColors[0]+'&sp='+currentColors[2];
var strippedString = encodeURIComponent(dataString);
Run Code Online (Sandbox Code Playgroud)

Sal*_*n A 6

用于encodeURIComponent编码 URI组件

var strippedString = 
    "designName=test" + 
    "&mc1=" + encodeURIComponent(currentColors[1]) +
    "&mc0=" + encodeURIComponent(currentColors[0]) +
    "&sp="  + encodeURIComponent(currentColors[2]);
Run Code Online (Sandbox Code Playgroud)

例子:

var strippedString = 
    "designName=test" + 
    "&mc1=" + encodeURIComponent("#FF0000") +
    "&mc0=" + encodeURIComponent("#00FF00") +
    "&sp="  + encodeURIComponent("#0000FF");
// "designName=test&mc1=%23FF0000&mc0=%2300FF00&sp=%230000FF"
Run Code Online (Sandbox Code Playgroud)

在服务器端,查询字符串将产生:

// parse_str("designName=test&mc1=%23FF0000&mc0=%2300FF00&sp=%230000FF", $my_GET);
// var_dump($my_GET);

array(4) {
  ["designName"]=>
  string(4) "test"
  ["mc1"]=>
  string(7) "#FF0000"
  ["mc0"]=>
  string(7) "#00FF00"
  ["sp"]=>
  string(7) "#0000FF"
}
Run Code Online (Sandbox Code Playgroud)