我有一个工作代码,它允许用户将 url 插入数据库,并显示数据库的内容。
当我使用 ajax 添加到数据库时遇到的问题是,如果 url 有字符“&”它会在该字符之前剪切 url,例如:
1. http://www.arisroyo.com/wp-content/uploads/2012/07/php.png
2. http://www.arisroyo.com/wp-content/uploads/2012/07/test&123.png
将 url 1 添加到数据库时我没有问题,但是当将 url 2 添加到数据库时,我将其添加到数据库中:
http://www.arisroyo.com/wp-content/uploads/2012/07/test
它忽略“&”符号之后的任何内容。问题是我所有的网址都将使用“&”符号。
这是我在 AJAX 上使用的代码,用于从网站上获取用户的 url:
var nocache = 0;
function insert() {
// Optional: Show a waiting message in the layer with ID login_response
document.getElementById('insert_response').innerHTML = "Just a second..."
// Required: verify that all fileds is not empty. Use encodeURI() to solve some issues about character encoding.
var site_url= encodeURI(document.getElementById('site_url').value);
// Set te random number to add to URL request
nocache = Math.random();
// Pass the login variables like URL variable
http.open('get', 'insert.php?site_url='+site_url+'&nocache = '+nocache);
http.onreadystatechange = insertReply;
http.send(null);
}
function insertReply() {
if(http.readyState == 4){
var response = http.responseText;
// else if login is ok show a message: "Site added+ site URL".
document.getElementById('insert_response').innerHTML = 'Site added:'+response;
}
}
我一直在使用没有 ajax 的 addinto mySQL,并且从来没有遇到过 url 和“&”符号的问题。我想知道是什么导致了这个问题。