我有一个textarea。我发送文本区域的值
<textarea class="php" name="codeguru"></textarea></div>
<div class="hint">This code is editable. Click Run to execute.</div>
<input type="submit" value="Run" />
通过$ ajax方法
$.ajax({
type: 'GET',
url: 'exec.php',
dataType: 'JSONP',
data: {
code: code
},
success: function (data) {},
jsonpCallback: 'mycallback',
error: function (xhr, ajaxOptions, thrownError, err, textStatus) {
}
});
问题:当我发送echo'sanjay'这样的数据时; 它被转换为echo \'sanjay'。
我在localhost和cpanel上实现了它。这在localhost上工作正常但在cpanel上不完美。任何建议或想法将不胜感激。
答案 0 :(得分:3)
我得到了答案
$code = stripslashes($code);
由于此代码,我可以删除黑条
答案 1 :(得分:0)
您应该在AJAX之前对其进行URL编码并对服务器端进行解码。 对于我来说,JSON字符串中的特定字符会发生这种情况,我通常会对其进行URL编码:
意义:
$.ajax({
type: 'GET',
url: 'exec.php',
dataType: 'JSONP',
data: {
code: encodeURIComponent(code)
},
success: function (data) {},
jsonpCallback: 'mycallback',
error: function (xhr, ajaxOptions, thrownError, err, textStatus) {
}
});
在服务器端:
$code = urldecode($_POST['code']); // or rwaurldecode, not sure
尝试使用/
和"
发送代码,看看它是如何响应的,因为我也遇到了问题,如果它确实尝试在引号中添加斜杠等等。我使用以下函数,但你可以修改它以满足你的需要:
function addslashes( str ) {
return (str + '').replace(/[\\"]/g, '\\$&').replace(/\u0000/g, '\\0');
}