Javascript 中的复杂字符串

Complex string in Javascript

我想将我的代码发送到此 API 进行编译。但它会抛出一个错误,因为我的字符串中有 \n。 如何在 header?

中设置此字符串
xhr.setRequestHeader('code', 'n = 5\nwhile n > 0:\n   n -= 1\n   print(n)');

xhr.setRequestHeader('code', 
'n = 5
while n > 0:
    n -= 1
    print(n)'
);

这是我得到的错误:

Uncaught DOMException: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': 'n = 5
while n > 0:
 n -= 1
 print(n)' is not a valid HTTP header field value.

您不能在 header 值中使用换行符。

不过,你可以自己想出一定的字符序列,后台会把它当作换行符,并自动用换行符替换这个序列。

当然,最好在 HTTP POST 请求 body 中传输此类内容,而不是在 header 中传输。