我正在使用ajax来获取网址。问题是URL中有斜杠,当JQuery加载发生后,它将不会加载页面。
AJAX成功位:
success: function(data) {
$('#OPTcontentpanel').load(data.OPTpermalink);
PHP
echo json_encode( array('OPTpermalink'=>$OPTpermalink,));
和响应
http:\/\/www.divethegap.com\/update\/options\/padi-open-water\/
所以需要去除斜线。我知道如何在PHP中完成它,而不是在 AJAX JavaScript中。
有什么想法吗?
非凡
答案 0 :(得分:23)
旧问题的新答案:
String.prototype.stripSlashes = function(){
return this.replace(/\\(.)/mg, "$1");
}
使用示例:
var str = "You\'re slashed \/\\..\/\\"; // Text from server
str = str.stripSlashes() ;
输出:
You're slashed /\../\
答案 1 :(得分:6)
这是一篇很老的帖子,但我认为我会添加我的答案,似乎比其他答案更有效:
var url = "http:\/\/www.divethegap.com\/update\/options\/padi-open-water\/"
var res = url.replace(new RegExp("\\\\", "g"), "");
这将替换所有出现的反斜杠字符。
答案 2 :(得分:5)
PHP的许多核心功能都有很好的端口,包括stripslashes
在这里:http://phpjs.org/functions/stripslashes/
function stripslashes (str) {
// + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + improved by: Ates Goral (http://magnetiq.com)
// + fixed by: Mick@el
// + improved by: marrtins
// + bugfixed by: Onno Marsman
// + improved by: rezna
// + input by: Rick Waldron
// + reimplemented by: Brett Zamir (http://brett-zamir.me)
// + input by: Brant Messenger (http://www.brantmessenger.com/)
// + bugfixed by: Brett Zamir (http://brett-zamir.me)
// * example 1: stripslashes('Kevin\'s code');
// * returns 1: "Kevin's code"
// * example 2: stripslashes('Kevin\\\'s code');
// * returns 2: "Kevin\'s code"
return (str + '').replace(/\\(.?)/g, function (s, n1) {
switch (n1) {
case '\\':
return '\\';
case '0':
return '\u0000';
case '':
return '';
default:
return n1;
}
});
}
答案 3 :(得分:3)
您正在发送JSON,但将其直接插入HTML元素。这不是明智的,可能会造成破碎的结果,也可能不是你想要做的事情。
你可能应该
更改PHP脚本的输出以创建正确的HTML
在JavaScript方面期望JSON(使用jQuery的dataType
参数或简写$.json()
,并解析
答案 4 :(得分:0)
你试过过string.replace吗?
success: function(data) {
$('#OPTcontentpanel').load(data.OPTpermalink.replace("\\", ""));