如何使用JavaScript安全地对URL进行编码,以便将其放入GET字符串?
var myUrl = "http://example.com/index.html?param=1&anotherParam=2";
var myOtherUrl = "http://example.com/index.html?url=" + myUrl;
Run Code Online (Sandbox Code Playgroud)
我假设你需要myUrl在第二行编码变量?
如果我做
url = "http://example.com?p=" + urllib.quote(query)
Run Code Online (Sandbox Code Playgroud)
/来%2F(休息OAuth的标准化)有更好的图书馆吗?
如果只处理url编码,我应该使用EscapeUriString?
我正在尝试使用http库向特定的api发出登录请求.我收到错误的凭据错误,因为发送的数据以某种方式编码,所有加号都更改为空格.因此,如果我输入amani+salah@gamil.com作为电子邮件,console.log会正确记录它,但它会在formdata中以amani salah@gmail.com的形式发送.任何数据都会发生同样的情况,而不仅仅是电子邮件,因此如果用户的密码中包含+,则发送的数据将更改为.
这是我的代码:
let email = 'xxxx@example.com';
let password = 'xxxx';
let body = 'email='+email+'&password='+password;
console.log(body);
let headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
let options = new RequestOptions({ headers: headers });
let url = this.base_url + '/login';
this.http.post(url, body, {headers: headers})
.map(res => res.json())
.subscribe(data => {
this.data = data;
resolve(this.data);
});
Run Code Online (Sandbox Code Playgroud) 我意识到在URL中,+符号表示空格,但是我需要保留加号。我怎样才能做到这一点?我的网址和代码如下:
http://www.example.com/path/test.php?test=2+2
<?php
$test = $_GET['test'];
echo $test;
?>
Run Code Online (Sandbox Code Playgroud)
打印出2 2