Javascript 在不转义到外部服务器的情况下放置/发布双引号
说明:Javascript 在不转义到外部服务器的情况下放置/发布双引号,javascript,double-quotes,Javascript,Double Quotes,说明: <!DOCTYPE html> <html> <body> <h1>The XMLHttpRequest Object</h1> <button type="button" onclick="loadDoc()">Request data</button> <p id="demo"></p> <script> function loadDoc() { va
<!DOCTYPE html>
<html>
<body>
<h1>The XMLHttpRequest Object</h1>
<button type="button" onclick="loadDoc()">Request data</button>
<p id="demo"></p>
<script>
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML = this.responseText;
}
};
xhttp.open("PUT", "http://www.example.com/json", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.setRequestHeader('X-CSRF-Token', "csrf_token");
xhttp.send("fname=Henry"); //TODO: MAKE SURE THAT EXACTLY {"email":"DD@GMAIL.COM"} WILL BE 'POSTED'.
}
</script>
</body>
</html>
我正在尝试发布/放置以下文本
{“电子邮件”:DD@GMAIL.COM“}
通过xhttp.send发送到外部服务器。我需要用它来发布双引号,但是我该怎么做呢?我读过关于htmlentities,specialchars等的文章,但一个多小时后,我仍然找不到解决方案。当然,这是行不通的(因为双引号冲突):
这是到目前为止的脚本:
<!DOCTYPE html>
<html>
<body>
<h1>The XMLHttpRequest Object</h1>
<button type="button" onclick="loadDoc()">Request data</button>
<p id="demo"></p>
<script>
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML = this.responseText;
}
};
xhttp.open("PUT", "http://www.example.com/json", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.setRequestHeader('X-CSRF-Token', "csrf_token");
xhttp.send("fname=Henry"); //TODO: MAKE SURE THAT EXACTLY {"email":"DD@GMAIL.COM"} WILL BE 'POSTED'.
}
</script>
</body>
</html>
XMLHttpRequest对象
请求数据
函数loadDoc(){
var xhttp=newXMLHttpRequest();
xhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
document.getElementById(“demo”).innerHTML=this.responseText;
}
};
xhttp.open(“PUT”http://www.example.com/json“,对);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
xhttp.setRequestHeader('X-CSRF-Token',“CSRF_Token”);
xhttp.send(“fname=Henry”);//TODO:确保{“email”:DD@GMAIL.COM“}将被“发布”。
}
请帮帮我,我想不出来 它是JavaScript,不是HTML(好吧,它嵌入HTML中,但在脚本元素中,所以你只需要担心squence
它是JavaScript,不是HTML(好吧,它嵌入HTML中,但在脚本元素中,所以你只需要担心squence你可以用单引号将字符串括起来)
xhttp.send('{"email":"DD@GMAIL.COM"}');
但是,最好将其从对象序列化为字符串
xhttp.send(JSON.stringify({ email :"DD@GMAIL.COM"}));
此外,还应发送正确的内容类型标题
xhttp.setRequestHeader("Content-Type", "application/json");
可以将字符串用单引号括起来
xhttp.send('{"email":"DD@GMAIL.COM"}');
但是,最好将其从对象序列化为字符串
xhttp.send(JSON.stringify({ email :"DD@GMAIL.COM"}));
此外,还应发送正确的内容类型标题
xhttp.setRequestHeader("Content-Type", "application/json");
您可以使用单引号将其包装:“{”email:“DD@GMAIL.COM}'
您可以使用单引号将其包装:'{“电子邮件”:DD@GMAIL.COM"}“
将它们转义或使用单引号作为分隔符重新缩放它们或使用单引号作为分隔符JSON。stringify
是一种方法。比通过转义或引用手工制作JSON好得多。JSON.stringify
是一种方法。比通过转义或引用手工制作JSON好得多。
xhttp.setRequestHeader("Content-Type", "application/json");