所以我使用简单的javascript(不允许使用jQuery)而且我无法以旧方式调用Ajax,我的变量内容之一就是单引号:
为了逃脱它,我正在做:
url = url.replace(/'/g, "\\'");
我控制台记录输出,单引号被%27
替换然后我正在调用它:
xhr.open("GET", url, false);
但我仍然得到500 internal server error
PS:当我从内容中删除单引号时没有错误。
答案 0 :(得分:2)
构建url时,使用escape()函数对要插入的变量的值进行编码。
例如。而不是
var url = "http://host.dom.com/path/file.php?var=" + myVar
使用:
var url = "http://host.dom.com/path/file.php?var=" + escape(myVar)
答案 1 :(得分:1)
\
不是您如何转义网址字符。
就个人而言,除非您获得静态或基于模板的内容(即便如此......),否则我会建议您反对GET
的AJAX请求。
使用POST会更好,你可以发布任何你喜欢的字符串而不用担心编码。
但是,如果你想使用GET,或者使用urlencoded格式的POST(例如,PHP $_POST
将起作用),那么你需要正确编码,这是用{完成的} {1}}